| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > $_POST==true когда его и небыло! Почему так? |
| Автор: Kotakota 23.12.2010, 13:12 | ||||
| Привет. Простейший скрипт:
Ввожу в браузере: http://localhost/index.php и получаю текст: Done Как это может быть, когда я ничего не пересылал методом POST? А еще делаю так:
Ничего не выводит. Есть еще похожая проблема здесь http://forum.vingrad.ru/forum/topic-115207/view-all.html но нет решения. |
| Автор: patap 23.12.2010, 13:52 | ||
потому что он(массив $_POST) всегда есть. Если ничего не передавалось - будет просто пустой массив - что всегда будет тру
|
| Автор: MoLeX 23.12.2010, 13:55 | ||||||||
имеем
Чтобы такого не было, надо делать так
или так
|
| Автор: Kotakota 24.12.2010, 08:03 | ||
| Спасибо всем! Просто в PHP 4, делал простую проверку:
Там такое работало... |
| Автор: ksnk 24.12.2010, 09:57 | ||
| Kotakota, Все значительно страньше в php4 такой код работать не мог. Мог работать вот такой
а вообще-то нужно бы проверить каким образом до нас добирается клиент. Это записано в переменной $_SERVER["REQUEST_METHOD"]. Тонкость в том, что потенциально можно сделать POST запрос и ничего не передавать в массиве POST. Метод (пустой пост) , кстати, довольно удобно применять для того, чтобы избегать ненужного кеширования на стороне клиента, при использовании ajax |
| Автор: BuShaRt 24.12.2010, 14:37 | ||
| Isset проверят существования переменной. Пустая переменная считается существующей. Поэтому для проверки наличия данных в переменной используется функция empty (зачастую в связке с реверсом "!") По сути, то что вы хотели получить от isset, вы получите от !empty
|