Не передаются переменные! Проблема 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 |
| Bizzart | 19.07.10 12:45 | ||
| Ух. Нашел! | |||
| Anr | 14.06.10 23:06 | ||
| Спасибо:) | |||
| moshimi | 23.04.10 14:29 | ||
| И от меня спасибочки, до того напарилась с этими переменными, всё теперь понятно: почему и как! | |||
| Kpy | 16.10.09 12:45 | ||
| Спасибо, в гугле топовая тема, на решение данной проблемы. | |||
| Игорь_vasinsky.com | 24.02.09 20:56 | ||
| НУ не Косте так ещё кому нить поможет. | |||
| Игорь_vasinsky.com | 23.01.09 04:54 | ||
| Мне тоже очень понравилась статья. Хорошо описано. Не где не встречал. p.s. А вот для Константина - вопрос о форме: Администратор имел ввиду использовать форму с методом POST и action=<?php PHP_SELF?> |
|||
|
|||
| 1 | 30.11.08 18:14 | ||
| $sql = mysql_query("SELECT * FROM page WHERE id ='$page' and razdel='$razdel'" ,$db); | |||
| makssnat | 24.11.08 22:07 | ||
| Спасибо, хорошая статья! | |||
| Септ | 20.11.08 21:59 | ||
| Константин, то, что вы хотите сделать, если не ошибаюсь, делается на AJAX. Автору - угу, давно наткнулся на описанную проблему, нашёл способ её решить. А теперь вот знаю, откуда эта проблема вообще взялась. Спасибо! |
|||
| Константин | 20.08.08 14:16 | ||
| Окей, всё замечательно работает, однако, может Вы подскажите ответ на такой вопрос: Метод Get и Post приводит к перезагрузке формы, мне же необходимо вызвать php скрипт так, чтобы обработать в нем данные с формы и выдать результаты на ту же страницу. К примеру: есть раскрывающийся список, в нем есть данные, допустим страны, после выбора страны, необходимо, чтобы очистился второй список и в нем появились города, присущие выбранной стране. Мне нужно узнать какими методами php может узнать данные которые я выбрал. P.S. Поскольку страны и города хранятся в таблицах бд Mysql, применение php считаю необходимым |
|||
|
|||