<?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,问题是什么。
如果您只是刷新页面,请执行以下操作:
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(通常需要在/ etc中使用sudo或root):
post_max_size = 8M
variables_order = "EGPCS"
你有这两个规则吗?如果是这样,请注意分配的内存量。根据您的系统规格,超过2048MB的任何东西都可能开始给您带来麻烦。
注意:如果您对php.ini文件进行了更改并且PHP作为apache模块运行,则需要重新启动apache。有点像:
sudo /etc/init.d/httpd restart
一旦我用post_max_size
设置upload_max_filesize
,我就破坏了我的post方法。
我认为post_max_size
必须低于upload_max_filesize
。
在RHEL 6.0中使用PHP 5.3.3进行了测试
这可能是由于重写.htaccess文件中的规则。将此条件添加到.htaccess文件中
RewriteCond %{REQUEST_METHOD} !POST [NC]
或者添加这一行
RewriteRule ^welcome_post.php - [PT]
我的朋友今天遇到了这个问题。答案很简单 - 基本上,你必须把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>
首先确保您的Web服务(GET / POST等)使用the Chrome Advanced Rest Client按照需要运行。然后你应该检查你的PHP部分。
我解决了我的问题,包括以下内容。
Content-Type: application/x-www-form-urlencoded
只需在提出请求时在标题中使用它,我的问题就解决了。
<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;
}
改用它;
$variable_name = $_REQUEST["ss"];
echo $variable_name;
改变你的IDE,我使用phpstorm,这太棒了但是当我使用Dreamweaver它可能工作,为了测试你可以直接从wampserver localhost运行你的页面,我更改默认的apache端口,我认为问题来自那里,如果你使用phpstorm或更改apache服务器的端口更改您的IDE。