PHP POST не работает - PullRequest
       30

PHP POST не работает

3 голосов
/ 29 марта 2012
<?php echo $_POST['ss'];?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input name="ss" type="text" />
<input type="submit" name="submit">
</form>

Этот код должен печатать все, что вводится в текстовом поле name = "ss" при нажатии кнопки "Отправить".
Но это не печать. Работа с method = "get", но не с post, в чем проблема.

Ответы [ 9 ]

13 голосов
/ 29 марта 2012

Если вы просто обновляете страницу, выполните:

action=''

вместо:

action="<?php echo $_SERVER['PHP_SELF'];?>"

Кроме того, добавьте это в строку 2, чтобы увидеть, что хранится (если что-то) в массиве $ _POST:

var_dump( $_POST );

Хмм ... так что при отправке он пуст?Попробуйте добавить это в начало вашего php-файла:

if(empty($_SERVER['CONTENT_TYPE']))
{ 
  $_SERVER['CONTENT_TYPE'] = "application/x-www-form-urlencoded"; 
}

Хорошо, теперь проверьте ваш php.ini (обычно требуется sudo или root в / etc):

post_max_size = 8M
variables_order = "EGPCS"

Делаете ли выэти два правила установлены?Если это так, будьте осторожны с тем, сколько памяти вы выделяете.Все, что превышает 2048 МБ, может начать доставлять вам проблемы, в зависимости от характеристик вашей системы.

ПРИМЕЧАНИЕ. Если вы вносите изменения в файл php.ini, а PHP работает как модуль apache, вам необходимо перезапустить apache.,Что-то вроде:

sudo /etc/init.d/httpd restart
5 голосов
/ 04 декабря 2014

Это может быть связано с переписыванием правил в файле .htaccess. Добавьте это условие в ваш файл .htaccess

RewriteCond %{REQUEST_METHOD} !POST [NC]

ИЛИ добавьте эту строку

 RewriteRule ^welcome_post.php - [PT]
5 голосов
/ 14 ноября 2013

Я однажды сломал свой метод записи, установив post_max_size то же самое с upload_max_filesize.

Я думаю, что post_max_size должно быть меньше upload_max_filesize.
Протестировано с PHP 5.3.3в RHEL 6,0

0 голосов
/ 30 августа 2018

Я решил мой с включением следующего в заголовок.

Content-Type: application/x-www-form-urlencoded

Просто используйте это в шапке, когда делаете запрос, и моя проблема была решена.

0 голосов
/ 31 июля 2017

<form action="" method="post"> method = "post" важен для данных POST.

Вместо этого используйте PHP REQUEST:

<form action="" method="post">
  <input type="email" name="mail">
  <input type="submit" name="submit" value="Submit">
</form>
PHP:

if(isset($_REQUEST['submit'])){
  $val= $_REQUEST['mail'];
  echo $val;
}
0 голосов
/ 17 декабря 2016

смените IDE, я использую phpstorm, это фантастика, но когда я использую dreamweaver, это, вероятно, работает, для теста вы можете запустить свою страницу напрямую с локального хоста wampserver, я изменяю порт apache по умолчанию и думаю, что проблема в этом,используйте phpstorm или измените порт сервера apache, измените вашу IDE.

0 голосов
/ 18 ноября 2015

Сначала убедитесь, что ваш веб-сервис (GET / POST и т. Д.) Работает должным образом, используя Chrome Advanced Rest Client .Тогда вы должны проверить свою часть PHP.

0 голосов
/ 08 мая 2015

Мой друг столкнулся с этой проблемой сегодня. Ответ был довольно прост - в основном, вы должны использовать POST заглавную часть method="POST"

Конечный результат должен выглядеть как

<?php echo $_POST['ss'];?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<input name="ss" type="text" />
<input type="submit" name="submit">
</form>
0 голосов
/ 08 мая 2015

используйте это вместо;

$variable_name = $_REQUEST["ss"];
echo $variable_name;
...