Не передаются переменные! Проблема Undefined variableВо всех старых руководствах по РНР написано, что даные, полученные из формы, или переданные по ссылке, вот так: script.php?peremennaya=znachenie&variable=valueавтоматически становятся переменными PHP, $peremennaya и $variableЭта информация устарела. Дело в том, что в целях безопасности, начиная с версии 4.1, РНР настраивается по умолчанию так, чтобы переданные значения не назначались переменным. Получить же переданное значение можно обратившись к соответствующему массиву. Например: Если передаем методом GET, обратившись к скрипту по ссылке вида script.php?var=valueили отправив форму, указав в ней method="GET", то все переменные содержатся в массиве $_GET.echo $_GET['var']; напечатает "value".Если получаем данные из формы, отправленной методом POST, то все поля этой формы содержатся в массиве $_POST. Допустим, в форме был элемент<input type="hidden" name="var" value="1">,то в скрипте, который указан в action формы, можно написать echo $_POST['var']; и будет выведена 1.Поэтому, если вы уверены, что переменная есть, но вы не можете ее найти - ищите ее в суперглобальных массивах. Подробнее о них можно почитать на русском языке в официальной документации http://ru2.php.net/variables.predefined То же касается и серверных переменных, таких, как $REMOTE_ADDR, $PHP_SELF. Получить их можно, обратившись к массивам $_SERVER, $_ENV или функцией getenv - ;Переменные, зарегистрированные в сессии, следует искать в массиве $_SESSION.Данные cookie содержатся в массиве $_COOKIE, сведения о закачанных файлах - в $_FILES Переменные окружения - в $_ENV, а так же, существует массив $_REQUEST, в котором собраны данные из GET, POST и cookie. Важно! Весьма в поисках переменных помогает одна их главных функций PHP - phpinfo()ее следует применять всякий раз, когда вы "потеряли" переменную, вызовите phpinfo(32); в скрипте, в котором не работает авторизация, в скрипте, который принимает файл при аплоаде - и все найдется!Все то же самое можно прочесть и в документации: http://www.php.net/manual/ru/security.globals.php Другие материалы раздела: Хочу изучать PHP и Mysql. С чего начать? Самые основы. Как работает PHP. Документация по PHP. Мануал по PHP, книги. Решение проблемы "Cannot add header information - headers already sent" Различие между абсолютными и относительными путями. В файловой системе и на сайте. Пример системы управления сайтом Что такое PHP? Как писать музыку на PHP |
| Я | 31.10.11 02:53 | ||
| Статья подтолкнула к мысли почему не работает мой скрипт поэтому спасибо | |||
| DS | 02.09.11 22:28 | ||
| ппц подумал я посмотрев на дату коментов)) тЫрнет - сила!! ))) Даже с годами, однажды сказанная умная мысль, помогает роду людскому)) |
|||
| Laslo | 16.12.10 19:59 | ||
| просто супер $_GET['y']отличное решение | |||
| Alex | 27.11.10 17:31 | ||
| TopServer 2.1. Если форма и скрипт php в одном файле *.php, скрипт работает. Если два файла, *.html и *.php, то при нажатии на кнопку появляется пустая страница, "Просмотр HTML-кода" - там весь текст скрипта php, начиная с <?php. В чем может быть проблема, помогите!!! | |||
| Alex | 27.11.10 17:27 | ||
| Извините, если не по теме. Сам не могу найти ответ. TopServer 2.1. Если форма и скрипт в одном файле @*.php@, скрипт работает. Если два файла, *.html и *.php, то при нажатии на кнопку появляется пустая страница, "Просмотр HTML-кода" - там текст скрипта php. В чем может быть проблема, помогите!!! |
|||
| kriger | 20.11.10 11:26 | ||
| Спасибо за статью. Изучаю по учебнику, там все работает, а у меня нет. Нашел ошибку, даже умнее себя почувствовал )) | |||
| Юра | 01.11.10 23:39 | ||
| наконец-то нешёл человеческое описание как параметр через урл передавать. ну почему все не могут так ясно и понятно излогать мысль ?? спасибо! |
|||
| Сергей | 14.10.10 09:17 | ||
| А как посмотреть переменные в $_FILES? Есть форма с input типа file, тип данных формы multipart/form-data, т.е. по идее файл должен передаваться, но при обращении к $_FILES ничего не происходит. Можно ли как-то посмотреть есть ли вообще что-то в $_FILES? | |||
|
|||
| Bizzart | 19.07.10 12:45 | ||
| Ух. Нашел! | |||
| Anr | 14.06.10 23:06 | ||
| Спасибо:) | |||