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

  Все выпуски  

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


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

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

Выпуск № 521
от 20.11.2006, 00:35

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


Вопрос № 62519: Мое почтение, ув. Эксперты. Появилась такая проблемка: Предположим у меня есть форма типа . Там пишется текст с двойными и одинарными ковычками. Нажимается кнопка выполняется некое действие и опять та же текст арея с переданным методом PO...
Вопрос № 62561: Здравствуйте, Пожалуйста подскажите про время жизни переменных. Такая ситуация, при первом запуске скрипта считывается текстовый файл и обрабатывается (прайс лист). Далее выводится на экран первые 20 строчек прайса и ссылки на следующий 20 ст...
Вопрос № 62616: Вот разбираю код. Вроде бы все понятно. Но Переменная $items. Зачем она нужна и за что она отвечает? И почему foreach($items...) ? Вроде должно брать из массива $names. А также зачем пременная $text? Сначала пустая, потом код и возврат return. Об...
Вопрос № 62643: Есть ли какое правило размещения скриптов на сервере... Или можно все скрипты скидать в коренной каталог и будут работать... Дело в том что локально на компе у меня все скрипты работают, а поместив их на сервер не хочет работать гостевуха и форум... ...

Вопрос № 62.519
Мое почтение, ув. Эксперты.
Появилась такая проблемка:
Предположим у меня есть форма типа . Там пишется текст с двойными и одинарными ковычками.
Нажимается кнопка выполняется некое действие и опять та же текст арея с переданным методом POST текстом(с ковычками). Но при передаче ПОСТом ко всем ковычкам добавляется слеш . При повторе в нексолько раз вышеозначенного алгоритма таких ковычек выстраивается штук 5. Соответственно вопрос, как заставить при передаче по ПОСТу не добавлять этот чертов слеш.
Заранее благодарен
Отправлен: 14.11.2006, 00:05
Вопрос задал: Гусаров Андрей Андреевич (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Eugene L
Здравствуйте, Гусаров Андрей Андреевич!

Отключите в файле php.ini опцию magic_quotes_gpc

Приложение:

Ответ отправил: Eugene L (статус: 1-ый класс)
Ответ отправлен: 14.11.2006, 00:18
Оценка за ответ: 4

Отвечает: Райкин Сергей Александрович
Здравствуйте, Гусаров Андрей Андреевич!
Их можно отключить в настройках php, или при выводе переменной прописать
< name="var"><?php echo stripslashes($var);?></>
---------
программист должен работать в свое удовольствие
Ответ отправил: Райкин Сергей Александрович (статус: 1-ый класс)
Ответ отправлен: 14.11.2006, 00:22
Оценка за ответ: 5

Отвечает: Барков Илья Андреевич
Здравствуйте, Гусаров Андрей Андреевич!

Это используется для обработки переменных перед тем, как записать их в базу данных.
Проблему можно устронить, использовав функцию stripslashes();
Ответ отправил: Барков Илья Андреевич (статус: 4-ый класс)
Ответ отправлен: 14.11.2006, 10:30
Оценка за ответ: 5


Вопрос № 62.561
Здравствуйте,
Пожалуйста подскажите про время жизни переменных.
Такая ситуация, при первом запуске скрипта считывается текстовый файл и обрабатывается (прайс лист). Далее выводится на экран первые 20 строчек прайса и ссылки на следующий 20 строчек.
Вопрос - при переходе по ссылке "следующие 20" мне нужно поновому
считывать файл и обрабатывать его??
Отправлен: 14.11.2006, 10:39
Вопрос задал: Nikk (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PVS
Здравствуйте, Nikk!
Есть вариант: запоминайте дату изменения исходного файла, генерируйте сразу ВСЕ страницы по 20 строчек и ложите в какой-нибудь кеш, а при обновлении или переходе на другую страницу анализируйте покзывать страницу из кеша или по-новой обрабатывать исходный файл.
Ответ отправил: PVS (статус: Практикант)
Ответ отправлен: 14.11.2006, 10:48

Отвечает: Барков Илья Андреевич
Здравствуйте, Nikk!
Да, но лучше сделать это не так. лучше один раз скачать файл, а потом каждый раз его обрабатывать.
А вообще мои Вам рекомендации: читайте его один раз, запихивайте в базу данных и уже от туда работайте с ним. потому что с БД все будет гораздо быстрее, чем с файлами. (не дай бог ещё и Excel-евский, тогда вообще жуть).

Ну и судя по тому, что прайс Вы качаете, на исходном сайте он тоже обновляется иногда. Для того, чтобы обновление прайса у Вас происходило без вашего участия - напишите функцию обработки файла и занесения в БД, запишите её в пхп файл и настройте CRON на сервере (если доступен).
Если что-то непонятно, пишите в персональные соообщения :)
Ответ отправил: Барков Илья Андреевич (статус: 4-ый класс)
Ответ отправлен: 14.11.2006, 10:50
Оценка за ответ: 5

Отвечает: Райкин Сергей Александрович
Здравствуйте, Nikk!
Лучше снова обработать файл.
Но еще можно передать по ссылке (не рационально), или прописать в сессии, что тоже не практично. Так что выход - повторно обработать, откинув первые 20 строчек.
---------
программист должен работать в свое удовольствие
Ответ отправил: Райкин Сергей Александрович (статус: 1-ый класс)
Ответ отправлен: 14.11.2006, 10:51


Вопрос № 62.616
Вот разбираю код. Вроде бы все понятно. Но Переменная $items. Зачем она нужна и за что она отвечает? И почему foreach($items...) ? Вроде должно брать из массива $names. А также зачем пременная $text? Сначала пустая, потом код и возврат return.
Объясните пожалуйста действие кода.

Приложение:

Отправлен: 14.11.2006, 19:19
Вопрос задал: _Master_ (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Райкин Сергей Александрович
Здравствуйте, _Master_!
function selectItems($items, $selected=0) означает, что функции нужно 2 параметра, и второй из них не обязательный.
Мы их передаем ей selectItems($names, $_REQUEST['surname'])
в результате внутри функции переменная $items принимает значение $names, т.е. массив, а $selected - $_REQUEST['surname'], т.е. номер выбраного элемента.

2 В переменную $text записуется html код и функцией return возвращается из функции, в результате получаем html код [option value...]name[/option].
---------
программист должен работать в свое удовольствие
Ответ отправил: Райкин Сергей Александрович (статус: 1-ый класс)
Ответ отправлен: 14.11.2006, 19:36

Отвечает: Барков Илья Андреевич
Здравствуйте, _Master_!
$items - в неё передается массив с значениями и описанием.
например: $items=array("1 row"=>"Text 1 row");
Тогда при исполнение foreach ($items as $k=>$v) переменная $k будет содержать "1 row", а $v="Text 1 row". Это пример на одну запись массив, если бы подобных записей было бы несколько, то foreach перебирал бы каждую почтучно. так и он называется "Для каждого"(foreach).
$names - Это какраз именно нужный массив, но он передается в функцию и внутри функции этотже массив называется $items.
В переменную $text записывается готовый HTML код, который потом выводится в форму. там есть строчка вида $text.= (внимание, точка + равно). это означает действие "конкатенация" (присоединение к концу переменной нового значения). подробнее можно в учебниках почитать про простейшие действия.
Надеюсь, доходчиво объяснил.
Гляньте приложение ещё.

Приложение:

Ответ отправил: Барков Илья Андреевич (статус: 4-ый класс)
Ответ отправлен: 15.11.2006, 12:21


Вопрос № 62.643
Есть ли какое правило размещения скриптов на сервере... Или можно все скрипты скидать в коренной каталог и будут работать... Дело в том что локально на компе у меня все скрипты работают, а поместив их на сервер не хочет работать гостевуха и форум... Отображатся всё отображается а вот счетчик не ведется, сообшения не отправляются, темы на форуме не создаются. Есть правело размещения скриптов на сервере???
Отправлен: 14.11.2006, 22:31
Вопрос задал: Unruly (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mo-skin
Здравствуйте, Unruly!
Могут возникнуть такие проблемы:
1. Необходимо выставить права (cmod),
обычно это 755.
2. Смотрите конфигурацию PHP на сервере.
Создайте файл test.php , напишите в нем:
<?
phpinfo();
?>
закачайте
и запустите через браузер.
Вы получите полную информацию о конфигурации PHP.
Желательно чтобы у ВАс в локале все настройки совпадали.
3. Обратите внимание на register_globals.
Если она на сервере выключена(=off) значит переменные, переданные в запросе
(например http://mysite.ru/index.php?login=admin&pass=12345)
надо принимать так:
$login=$_GET['login'];
$pass=$_GET['pass'];


---------
Чем больше женщину мы меньше, тем больше меньше мы ее!
Ответ отправил: Mo-skin (статус: 2-ой класс)
Ответ отправлен: 14.11.2006, 23:17

Отвечает: Барков Илья Андреевич
Здравствуйте, Unruly!
Для форумов, гостевых книг и прочьего надо запускать инсталяцию. У форумов, почти у всех, она точно идет в комплекте. А вообще перед тем как задавать вопросы, всегда читайте файл Readme.txt или install.txt, входяшие в скрипт. Там обычно все написано.
В общих чертах: необходимо соединение с базой данных, доступ, ну и наличие таблиц, которые используются скриптами. Естественно скрипты их создают сами. Просто надо найти файл, который этим занимается.

Удачи!
Ответ отправил: Барков Илья Андреевич (статус: 4-ый класс)
Ответ отправлен: 15.11.2006, 12:31

Отвечает: Бакулин Станислав Анатольевич
Здравствуйте, Unruly!

Перед тем, как устанавливать скрипты прочитайте файлы redme.txt, readme.html, install.txt, install.html (могут храниться в папках docs, documentation, help)

Для некоторых скриптов (форумов, чатов, CMS), надо запускать инсталляцию, в результате которой создадутся таблицы в базе данных. Скрипты с расширениями *.cgi и (или) *.pl должны находиться в каталоге cgi-bin
Ответ отправил: Бакулин Станислав Анатольевич (статус: 3-ий класс)
Ответ отправлен: 15.11.2006, 13:59


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное