首頁  >  文章  >  後端開發  >  PHP表单使用POST提交数据在结果页面收不到任何数据。

PHP表单使用POST提交数据在结果页面收不到任何数据。

WBOY
WBOY原創
2016-07-06 13:53:18994瀏覽

刚开始学习PHP,在学到表单提交数据的时候遇到困难,求指教。

我是看这两个地方的教程学的: RUNOOB、W3C
问题是这样的,在index.php页面中有一个表单,使用post提交数据然后跳转到Test13_welcome.php页面并在这个页面拿到数据,但是照着网上教程来看人家都是可以的,但是这里确实不行。详细描述如下:

系统:Mac OSX 10.11.5
IDE:PHPStorm 2016.1.2
PHP:7.0.7
浏览器:Safari、Chorme 都试了

下面是 index.php

<code>




<form action="Test13_welcome.php" method="post" enctype="application/x-www-form-urlencoded">
    Name: <input type="text" name="name"><br>
    E-mail: <input type="text" name="email"><br>
    <input type="submit" name="submit">
</form>

</code>

下面是 Test13_welcom.php

<code>

<?php var_dump($_REQUEST);
var_dump($_POST);
$a = file_get_contents('php://input', 'r');
echo $a.PHP_EOL;
echo "<br>"; ?>
Welcome :                 <?php echo $_POST["name"]; ?><br>
Your email address is :   <?php echo $_POST["email"]; ?>


</code>

运行以后随便输入几个数据,跳转后显示结果是:

<code>array(0) { } 
array(0) { } 
name=234&email=2345&submit=%E6%8F%90%E4%BA%A4 
Welcome : 
Notice: Undefined index: name in /Users/JyHu/Dropbox/PHP/Study/Runoob/RBase/Test13_welcome.php on line 9

Your email address is : 
Notice: Undefined index: email in /Users/JyHu/Dropbox/PHP/Study/Runoob/RBase/Test13_welcome.php on line 10</code>

可以看出是只有使用file_get_contents才能拿到数据,_REQUEST _POST 都没有数据。
但是测试使用get提交使用_GET是可以拿到的。
根据网上有的说法,下面两个php.ini的参数也是设置好的

<code>variables_order = "GPCS"
enable_post_data_reading = True</code>

回复内容:

刚开始学习PHP,在学到表单提交数据的时候遇到困难,求指教。

我是看这两个地方的教程学的: RUNOOB、W3C
问题是这样的,在index.php页面中有一个表单,使用post提交数据然后跳转到Test13_welcome.php页面并在这个页面拿到数据,但是照着网上教程来看人家都是可以的,但是这里确实不行。详细描述如下:

系统:Mac OSX 10.11.5
IDE:PHPStorm 2016.1.2
PHP:7.0.7
浏览器:Safari、Chorme 都试了

下面是 index.php

<code>




<form action="Test13_welcome.php" method="post" enctype="application/x-www-form-urlencoded">
    Name: <input type="text" name="name"><br>
    E-mail: <input type="text" name="email"><br>
    <input type="submit" name="submit">
</form>

</code>

下面是 Test13_welcom.php

<code>

<?php var_dump($_REQUEST);
var_dump($_POST);
$a = file_get_contents('php://input', 'r');
echo $a.PHP_EOL;
echo "<br>"; ?>
Welcome :                 <?php echo $_POST["name"]; ?><br>
Your email address is :   <?php echo $_POST["email"]; ?>


</code>

运行以后随便输入几个数据,跳转后显示结果是:

<code>array(0) { } 
array(0) { } 
name=234&email=2345&submit=%E6%8F%90%E4%BA%A4 
Welcome : 
Notice: Undefined index: name in /Users/JyHu/Dropbox/PHP/Study/Runoob/RBase/Test13_welcome.php on line 9

Your email address is : 
Notice: Undefined index: email in /Users/JyHu/Dropbox/PHP/Study/Runoob/RBase/Test13_welcome.php on line 10</code>

可以看出是只有使用file_get_contents才能拿到数据,_REQUEST _POST 都没有数据。
但是测试使用get提交使用_GET是可以拿到的。
根据网上有的说法,下面两个php.ini的参数也是设置好的

<code>variables_order = "GPCS"
enable_post_data_reading = True</code>

我遇到过这个问题。前提是调试用的是PhpStorm内置服务器的话。那你就看下面。如果不是,那就当我没说。
首先 phpinfo();
PhpStorm如何下
PHP表单使用POST提交数据在结果页面收不到任何数据。
XAMPP或者自行搭建的PHP环境,并且用Apache

PHP表单使用POST提交数据在结果页面收不到任何数据。

原因就是内置浏览器是FastCGI模拟的没有$_POST
解决方法是PhpStorm设置到Apache环境。

<code class="php"><?php var_dump($_REQUEST);
var_dump($_POST);
$a = file_get_contents('php://input', 'r');
echo $a.PHP_EOL;
echo "<br>"; ?>


Welcome :                 <?php echo $_POST["name"]; ?><br>
Your email address is :   <?php echo $_POST["email"]; ?>


</code>

form 表单action 地址不对

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn