Консультация № 26632
20.09.2005, 19:29
0.00 руб.
0 5 5
Привет всем участникам рассылки!
Подскажите pls почему не работает
такой скрипт см. приложение.
Выдает ошибку типа переменная не определена:
Notice: Undefined variable: username in z:\home\test1.ru\www\ex17.php on line 3
Использую "Денвер".
При этом, если использовать закоментированные строки в файле ex17.php,
то все работает, но хотелось бы выяснить почему не работает более
короткий вариант и как это исправить?


Приложение:
Файл - ex17.html:<form action="ex17.php" method="GET"> Name: <input type="text" name="username">
Email: <input type="text" name="email">
<input type="submit" name="submit" value="Submit me!"> </form>Файл - ex17.php:<?php //echo $_REQUEST[‘username‘];echo $username;//print $_REQUEST[‘email‘]; print $email; ?>

Обсуждение

Неизвестный
20.09.2005, 19:39
общий
это ответ
Здравствуйте, 1!
это было сделано в целяхбезопасности скриптов. В мануале по php строго не рекомендуется использовать глобальные переменные, но если ты по другому не можешь, то установи значение register_glabals в файле php.ini равным true, а не false.
:-)
Неизвестный
20.09.2005, 21:02
общий
это ответ
Здравствуйте, 1!
В PHP, начиная с версии 4.2.0, register_globals по умолчанию установлен в off, (в файле php.ini: register_globals = off) поэтому к переменной $username переданной методом GET нужно обращаться через массив $_GET[‘username‘]. Тоже касается POST, SESSION и COOKIE. Прочитай манул:
на русском:
http://ru.php.net/manual/ru/security.globals.php
на английском:
http://ru.php.net/manual/en/security.globals.php

и реши что для тебя является предпочтительным!
Неизвестный
21.09.2005, 08:00
общий
это ответ
Здравствуйте, 1!

Незнаю у меня все работает нормально. Посмотрите у вас в "php.ini" register_globals = On или off если в off поставте в on.
Неизвестный
21.09.2005, 17:07
общий
это ответ
Здравствуйте, 1!
посмотрите в php.ini
register_globals=on
если же там стоит off измените на on
Неизвестный
22.09.2005, 00:04
общий
это ответ
Здравствуйте, 1!
Я объясню почему так произошло - переменная $username не пришла через GET (причину вам уже сказали) и поэтому для пхп этой переменной не существовало. Рекомендую проверять пришла ли переменная или нет через if(isset($HTTP_GET_VARS[‘username‘])) bla-bla; (ну или HTTP_POST_VARS)
удачи!
Форма ответа