Почему не могу передать данные методом POST?

Есть простая форма с двумя полями. И есть простая форма вывода с простым условием. Но условие тут не важно. Дело в том что я не могу заставить работать метод POST. Вот метод get работает. А POST нет. Подскажите в чем может быть дело. Я проверял на трех версиях PHP. Начиная с 5.4 заканчивая 7.0
Везде одинаковая проблема. У меня стоит IDE php storm на Windows 10, ну и апатч, все вроде работает, другой код рабтает. А вот метод передачи данных POST нет. Помогите решить проблему. Уже неделю мучаюсь с ним.
Вот мой пример:

0cefdc6dd0f542c3954977b81c32d3b5.png

Если убрать условие то будет фот такое сообщение
Notice: Undefined index: personal in D:\www\Apache\web\test\index2.php on line 11
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ответы на вопрос 7
Melkij
@Melkij
PostgreSQL DBA, contributor
$_POST существует всегда. Ну разве только вы сами руками unset сделаете.
Поэтому проверять на isset($_POST) не имеет смысла.
Ответ написан
grey_18_08
@grey_18_08 Автор вопроса
А, забыл убрать, много тестировал, пытался выяснить причину, будет вот так:
5f7a7d68fed04aa69fb98d0656a6b33b.png
выдает вот что

72433780620a48e4a14ad18c58c9982a.png

В любом случае POST не работает. Вы скажите я хоть правильно делаю, или теперь методом Post как то по другому передавать данные нужно?

var_dump($_POST); выдает array(0) { }
Ответ написан
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
что выдает?
var_dump($_POST);
Ответ написан
DmitryIvaneychik
@DmitryIvaneychik
Developer in VoxImplant
А Вы выведите:
var_dump($_POST);
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Melkij дело говорит, проверка isset( $_POST ) не имеет смысла. Вам надо проверять конкретный ключ, например, isset( $_POST['personal'] ). В данный момент ваш код работает как часы - массив $_POST существует, поэтому выполняется первая часть условия. Но в этот момент индекса (элемента массива) 'personal' еще нет, поэтому PHP и ругается на него - Undefined Index.
Ответ написан
@Barmunk
К примеру, у меня воспроизводится.

<?php

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {

        $a = (isset($_POST['a'])) ?  $_POST['a'] : 'a none';
        $b = (isset($_POST['b'])) ?  $_POST['b'] : 'b none';

    }

 ?>

 <form action="" method="POST">
  <input type="text" name="a">
  <input type="text" name="b">

  <p><input type="submit"></p>
 </form>

<?= (isset($a)) ? $a : ''; ?>
<?= (isset($b)) ? $b : ''; ?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы