刚开始学习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如何下
XAMPP或者自行搭建的PHP环境,并且用Apache
原因就是内置浏览器是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 地址不对