Вопрос № 52105: Здравствуйте уважаемые эксперты!
Я недавно начал учить PHP, и возникла проблемка:
Беру пример из електронного учебника, там пересылка данных методом GET
Форма свои данные отправляет, в строке адреса написано типа
http://loca...
Вопрос № 52.105
Здравствуйте уважаемые эксперты!
Я недавно начал учить PHP, и возникла проблемка:
Беру пример из електронного учебника, там пересылка данных методом GET
Форма свои данные отправляет, в строке адреса написано типа
http://localhost/action.php?HDD=200Gb&CDROM=52x
Но при выводе, ети переменные не выводятся, как будто их нет.
ЧТо я делаю не так, пожалуйста подскажите
Приложение:
Отправлен: 14.08.2006, 18:40
Вопрос задал: ANDx (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Марк Крейн
Здравствуйте, ANDx!
Надо так:
$_GET['HDD']
$_GET['CDROM']
Тогда всё будет работать.
Ответ отправил: Марк Крейн (статус: Студент)
Ответ отправлен: 14.08.2006, 18:47 Оценка за ответ: 5
Отвечает: PVS
Здравствуйте, ANDx!
Вероятно у Вас в файле php.ini выставлена настройка register_globals=Off
Если хотите, чтобы Ваш пример заработал как есть поставте register_globals=On
Если не хотите зависеть от register_globals, то поправте в скрипте $HDD на $_REQUEST['HDD'] или на $_GET['HDD'], с $CDROM - все то же.
$_REQUEST - массив данных запроса (неважно какого типа)
$_GET - массив данных GET-запроса
$_POST - массив данных POST-запроса
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 14.08.2006, 18:48 Оценка за ответ: 5
Ответ отправил: Галушко Павел Павлович (статус: 2-ой класс)
Ответ отправлен: 14.08.2006, 18:52 Оценка за ответ: 5
Отвечает: NoOne
Здравствуйте, ANDx!
В общем Вам ответили верно, но есть пара замечаний.
Если значение параметра register_globals установлено в "on", будут автоматически создаваться переменные вида $имя_поля_формы при передаче формы PHP-скрипту. Казалось бы, это удобней, чем использовать нагромождения вида $_GET['имя_поля_формы'] или $_POST['имя_поля_формы'], но! Это таит в себе большие проблемы безопасности при неправильном написании скрипта. И это только во-первых. Во-вторых, в нынеразрабатываемом PHP6 параметр register_globals вообще удален и переменных $имя_поля_формы больше нет. Поэтому
_НЕ_ стоит пользоваться им. Пользуйтесь $_GET, $_POST и т.д.
Второе. Ув. Галушко Павел Павлович предложил воспользоваться $HTTP_GET_VARS['HDD'] и $HTTP_GET_VARS['CDROM']. Хотя в данный момент использования $HTTP_GET_VARS вместо $_GET возможно, _НЕ_ рекомендуется его применять, т.к. этот устаревший атавизм в том же PHP6 просто отсутствует.
--------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (c) М.Фаулер
Ответ отправил: NoOne (статус: 1-ый класс)
Ответ отправлен: 15.08.2006, 10:28 Оценка за ответ: 5 Комментарий оценки: Спасибо за пояснения