Прежде чем кто-то скажет мне посмотреть другие подобные посты, у меня уже есть, и я не могу найти решение моей проблемы.
Я строю анкету для проекта, и я использую php 5.6, xampp, phpmyadmin, Phpstorm 2017.1.2 и, конечно, обычные языки html css javacript.
Чтобы написать меньше кода, я использовал метод masterpage для создания своего веб-сайта для анкеты.
Поэтому у меня есть do-test.php, куда я помещаю свою анкету, и index.php, где у меня есть основной скелет страницы.
У меня есть анкета с различными наборами полей и их входами. Наконец, у меня есть кнопка ввода type = submit, которую я нажимаю, и форма должна быть отправлена. Однако мой метод $ _POST не работает вообще.
Следующий код выполняет всю работу. К сожалению, по неизвестным мне причинам, когда выполняется оператор if, он даже не смотрит на метод isset или! Empty.
Использование отладчика IDE
Отладка do-test.php без мастер-страницы .: Мой xdebug (установленный в phpstorm), переходит прямо с точки останова в оператор if в конец страницы. Я попытался использовать else с сообщением, что «submit is not set», и он показывает это до и после отправки формы.
if(isset($_POST['Submit']) && !empty($_POST['Submit'])) {
$results = new Results();
$results->ProcessRequest();
if ($results->isSuccessful()) {
echo "<script type='text/javascript'>
alert('Your data is sent to the server');
</script>";
} else {
echo "<script type='text/javascript'>
alert('Something went wrong.');
</script>";
}
}
Мои необработанные http-данные публикуются, но массив записей пуст.
Отладка do-test.php с мастер-страницы: Получает мне 502 ошибка шлюза
Отладка с использованием localhost
Используя этот фрагмент кода Вот Я пытался увидеть, что происходит.
Отправка формы с мастер-страницы или простой тестовой страницы, дает мне следующий результат:
Это означает, что мой массив записей имеет все правильные переменные. Осталось только выполнить метод и передать данные в БД.
Мои post_max_size и variable_order (совет взят из Вот) верны.
magic_quotes_gpc (из этого сообщение) выключены в php.ini.
Может быть, это модули http, которые мешают POST, как сказал Джордж Милло
Вот??? Если так, как я могу вмешаться в это?
Может быть что-то не так с моей версией phpstorm или версией php?
Любое предложение приветствуется. Заранее спасибо.
Возможно, я написал одну вещь неправильно, поэтому у меня сложилось неправильное впечатление. Я написал «когда выполняется оператор if», хотя на самом деле отладчик работает и пытается выполнить оператор if, но это не так. Извините за мое плохое объяснение.
Член «Жив или умри» дал мне простое решение использования
if(count($_POST)>0)
и это работает !! Так что я буду придерживаться этого.
Спасибо всем за ваши быстрые комментарии и за то, что указали на очевидное, когда этого не видно !!
Других решений пока нет …