Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 630
от 09.04.2007, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 429, Экспертов: 67
В номере:Вопросов: 5, Ответов: 11


Вопрос № 80923: Уважаемые Докт... тьфу.. Эксперты! Так так первый вопрос ушел в нибытиё... повторю: требуется выдать пользователю файл, НО под другим именем ничего не изменяя в содержимом. Файл представляет собой gz архив, и хранится под з...
Вопрос № 80997: здравствуйте тов. эксперты! ... у меня вопрос по cookies'ам ,... на сайте организован переход на англоязычную версию. в куках хранится переменная Lang ... в корневом каталоге находится файл index.php в котором находится следующий код ...
Вопрос № 81015: Уважаемые Экспреты! Возникла такая проблема. Требуется выдать клиенту файл, пользуюсь нижеприведйнным кодом (спасибо эксперту). Однако возникает такая проблема файл приходит битым, как я разобрался всё из-за того что я сжимаю страницы перед ...
Вопрос № 81044: Здравствуйте! Как средствами PHP можно узнать размеры (в пикселях) определённого текста с определённым размером шрифта?...
Вопрос № 81049: Respect всем. Уважаймые гуру. Мне необходима ваша помошь. Я создал сайт вот его адрес www.srg-one.narod.ru Он хороший,чёткий. Но понимаете мне нужен форум. А тот форум который предлогает Народ меня не устраивает. Подскажите где взять хороший форум,чт...

Вопрос № 80.923
Уважаемые Докт... тьфу.. Эксперты!

Так так первый вопрос ушел в нибытиё... повторю:

требуется выдать пользователю файл, НО под другим именем ничего не изменяя в содержимом.

Файл представляет собой gz архив, и хранится под закодированным именем.
пользовался таким кодом. Но файл скачавается битым. Подскажите альтернативу!

Приложение:

Отправлен: 03.04.2007, 20:43
Вопрос задал: J D (статус: 6-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Илья Андреевич
Здравствуйте, J D!
Пирмерно так, правда не тестировал, но работать должно :)
Документацию можно взять вот тут:
http://www.codenet.ru/webmast/php/PHP4-Manual/f/header.php

Код в приложение.
p/s не судите строго, если что-то забыл -- с просонья.

Приложение:

Ответ отправил: Илья Андреевич (статус: Студент)
Ответ отправлен: 04.04.2007, 10:16


Вопрос № 80.997
здравствуйте тов. эксперты! ...
у меня вопрос по cookies'ам ,...
на сайте организован переход на англоязычную версию. в куках хранится переменная Lang ...
в корневом каталоге находится файл index.php в котором находится следующий код

if (!isset($Lang)){
setcookie('Lang','rus');
}
if (isset($_GET['Lang'])){
setcookie('Lang',$_GET['Lang']);
header("Lovation:мой сайт...");
}

другие страницы находятся в подкаталогах, в которых находится ссылка
http://www.мой сайт.?Lang=eng и используется переменная $Lang. для вывода соответствующего содержания.

происходит следующие ... когда нажимаю на ссылку загружается сайт с английской версией , при этом если перейти на другую станицу то почему-то грузится опять русский вариант....
Отправлен: 04.04.2007, 10:17
Вопрос задал: Андрей [bk] (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Илья Андреевич
Здравствуйте, Андрей [bk]!
Из Вашего кода видно, что если кука установлена, то постоянно будет кидать в начало сайта. лучше сделать не так.
Есть несколько способов решения таких проблем:
1. Mod_rewrite.
чтобы ссылка выглядела примерно так: http://www.site.com/ru/index.php
тоестьтехнически ссылка index.php?Lang=ru, но отображаться будет как я написал выше.
Это вам надо читать документацию по mod_rewrite.
2. Сессии. почему вы используете куки? тем более с включенным регистер_глобалс?
Странный механизм вообще у Вас.

Может лучше так:
if ( ! isset ( $_SESSION['lang'] ) ) {

/* для php 4.X */
$lang="rus";
session_register("lang");

/* для php 5.X */
session_register("lang");
$_SESSION['lang']="rus";
}
а в страницах где обрабатывается переменная $_GET['Lang'] изменить на $_SESSION['Lang'].
Таким образом меньше забиваем куки, меньше забиваем адресную строку.

Хотя вообще конечно логичнее первый вариант.
Ответ отправил: Илья Андреевич (статус: Студент)
Ответ отправлен: 04.04.2007, 10:24

Отвечает: Устинов Сергей
Здравствуйте, Андрей [bk]!

А что именно у Вас не получается с сессиями? Я думаю проблема в том, что имена переменных в сессиях регистрозависимы, т.е. переменная lang и переменная Lang - это разные переменные.

Проверить это легко:
$_SESSION['Lang']='rus';
$_SESSION['lang']='eng';
echo $_SESSION['Lang'].' - '.$_SESSION['lang'];

В результате получите rus - eng
Верный код написан в приложении. Но действительно, Вам лучше покопать в сторону mod_rewrite и почитать статьи по ЧПУ - человеко-понятным указателям. (ищется в Яндексе за 5 минут)

Удачи!

Приложение:

---------
Ждешь квалифицированного ответа? Задай правильно вопрос!

Ответ отправил: Устинов Сергей (статус: Практикант)
Ответ отправлен: 04.04.2007, 11:28


Вопрос № 81.015
Уважаемые Экспреты!

Возникла такая проблема. Требуется выдать клиенту файл, пользуюсь нижеприведйнным кодом (спасибо эксперту). Однако возникает такая проблема файл приходит битым, как я разобрался всё из-за того что я сжимаю страницы перед отравкой. Т.е. в самом начале сценария стоит:
ob_start("ob_gzhandler");

Так вот такой вопрос, как отключить сжатие страниц перед отправкой файла. Жалательно не делать перезагрузки сценария.

Приложение:

Отправлен: 04.04.2007, 11:53
Вопрос задал: J D (статус: 6-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: PVS
Здравствуйте, J D!
А что Вам мешает вызвать ob_end_clean перед этим кодом?
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 04.04.2007, 11:57
Оценка за ответ: 5
Комментарий оценки:
Сначало неработало. Но потом вспомнил что у меня три вложенных буфера получается... теперь всё ок.

Отвечает: Илья Андреевич
Здравствуйте, J D!
Сделать отдельный файл download.php
и передавать ему параметр, например имя файла, или ID файла и брать имя файла из базы данных.
в итоге :
$name_on_server=$_GET['filename']; // в случае передачи имени файлу.
//либо передавать айди файла и брать его имя из базы данных
$name_on_server=$obj->get_file_name_by_id((int)$_GET['id']);

header("Content-type: application/x-gzip");
header("Content-Disposition: attachment; filename=".$file_display);
echo file_get_contents($name_on_server);
exit;
Ответ отправил: Илья Андреевич (статус: Студент)
Ответ отправлен: 04.04.2007, 15:39
Оценка за ответ: 5
Комментарий оценки:
предыдущий ответ гораздо проще, но всё равно спасибо. просто меня обычный файл не устраивает, так как до выдачи файла проводиться огромная работа, и не хочется её дублировать ещё раз. это затормозит работу.


Вопрос № 81.044
Здравствуйте! Как средствами PHP можно узнать размеры (в пикселях) определённого текста с определённым размером шрифта?
Отправлен: 04.04.2007, 15:12
Вопрос задал: Теленков Д.С. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Nexus
Здравствуйте, Теленков Д.С.!
Ответ удалён по следующей причине: не соответствует тематике вопроса. Помещён в ветку Удалённые ответы для обсуждения
(Ерёмин А.)

Ответ отправил: Nexus (статус: 6-ой класс)
Ответ отправлен: 04.04.2007, 15:23

Отвечает: Ерёмин Андрей
Здравствуйте, Теленков Д.С.!
Для этого нужно воспользоваться библиотекой GD. Как правило, она установлена на большинстве серверов. В библиотеке есть функция imagettfbbox(), которая возвращает массив координат прямоугольника с текстом. Единственное неудобство - чтобы работать с каким-либо шрифтом, его нужно загрузить на сервер (файл *.ttf, можно найти в каталоге Windows/Fonts). Функции подаётся 4 параметра: размер шрифта, угол поворота (для обычного горизонтального текста - 0), имя (путь) файла со шрифтом и текст. После этого остаётся лишь вычесть координаты и ширина/высота текста получены. Подробнее об этой функции »
Ну а код в приложении. Желаю удачи!

Приложение:

---------
Нет правила без исключений. Правило без исключений - исключение из правил.

Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Помощь, советы, обмен опытом.
ICQ: 286867644
----
Ответ отправлен: 04.04.2007, 15:55


Вопрос № 81.049
Respect всем. Уважаймые гуру. Мне необходима ваша помошь. Я создал сайт вот его адрес www.srg-one.narod.ru Он хороший,чёткий. Но понимаете мне нужен форум. А тот форум который предлогает Народ меня не устраивает. Подскажите где взять хороший форум,чтоб его можно было самому переделать и чем-нибудь дополнить. Да и чтоб было ясно такому дундуку как я, как его установить. А то я нашёл скрипты, там и руководство есть, но проблема в том что там нужно выставить атрибут CHmod 775, а где и как его ставить не сказано. Да и такого атрибута тоже нет. Есть только чтение,архивный ,системный и скрытый. Пожалуста помогите мне, не бросайте в биде, буду очень блогодарен вам.
Отправлен: 04.04.2007, 15:30
Вопрос задал: Mr.orbit (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Nexus
Здравствуйте, Mr.orbit!

Поставить форум на Народ не получится. Для форума нужен хостинг с пхп и mysql (или какой-то другой СУБД). Из бесплатных могу посоветовать ho.com.ua, там можно еще и повесить свой домен (например, зарегестрировать бесплатно org.ua или org.ru), но если будет большая нагрузка на сервер, то "предложат" перейти на платный вариант. Та и платные хостинги сейчас стоят от 50грн в год, по-моему это не деньги, гемора с бесплатным будет больше.

Из форумов я бы посоветовал PhpBB (опять же из бесплатных), хотя на просторах сети можно найти и vBulletin, который лучше, но вообще-то платный ;)

Устанавливать права на папку тебе в любом случае придется при установке форума - это делается через любой фтп клиент (как и заливка скрипта форума). После заказа/покупки хостинга тебе дадут адрес фтп для твоего сайта и логин/пароль к нему. Я пользуюсь встроенным в тотал клиентом, там выбирается папка, дальше файл->изменить атрибуты и там введете эти 775. В любом другом фтп клиенте эта опция тоже есть - думаю найти будет не проблема.

Удачи!
Ответ отправил: Nexus (статус: 6-ой класс)
Ответ отправлен: 04.04.2007, 15:47

Отвечает: Ерёмин Андрей
Здравствуйте, Mr.orbit!
Самое простое - зарегистрироваться на сайте, где позволяют бесплатно открыть форум. Примеры таких ресурсов: http://www.vdforum.ru/, http://www.fastbb.ru/. Это куда проще, чем вручную устанавливать форум на сайт. Ну а на народовский сайт форум вообще невозможнос поставить, потому что серверные скрипты там запрещены.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Помощь, советы, обмен опытом.
ICQ: 286867644
----
Ответ отправлен: 04.04.2007, 16:13

Отвечает: Fatal1ST
Здравствуйте, Mr.orbit!
В беде - это ты преувеличиваешь :)
CHMOD - это права доступа к файлам на твоём хосте. Их можно выставлять
в панели управления хостингом или во время работы через фтп. На каждом хосте свои тонкости,
так что просто ищи пункт "права доступа".
755 равно rwx-r-x-r-x, что означает для админа - полная свобода действий, а для группы и прочих пользователей - только чтение и исполнение (но не запись).
В IE, во время работы через фтп, можно кликнуть на файл правой кнопкой мыши и установить
нужные права.
Распространенный форум http://www.phpbbguru.net/
Ответ отправил: Fatal1ST (статус: 1-ый класс)
Ответ отправлен: 04.04.2007, 16:39

Отвечает: Lytkin
Здравствуйте, Mr.orbit!
Скачай форум phpBB. В поисковике так и набери "форум phpBB".
Ответ отправил: Lytkin (статус: 1-ый класс)
Ответ отправлен: 04.04.2007, 17:54


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.47 от 06.04.2007
Яндекс Rambler's Top100

В избранное