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

WBOY
发布: 2016-07-06 13:53:18
原创
993 人浏览过

刚开始学习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 地址不对

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板