PHP POST无法正常工作

Was*_* A. 3 html php forms post echo

<?php echo $_POST['ss'];?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input name="ss" type="text" />
<input type="submit" name="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

单击提交时,此代码应打印文本框name ="ss"中输入的内容.
但它不打印.使用method ="get"但不使用post,问题是什么.

Mat*_*rte 13

如果您只是刷新页面,请执行以下操作:

action=''
Run Code Online (Sandbox Code Playgroud)

代替:

action="<?php echo $_SERVER['PHP_SELF'];?>"
Run Code Online (Sandbox Code Playgroud)

另外,将其添加到第2行以查看$ _POST数组中存储的内容(如果有的话):

var_dump( $_POST );
Run Code Online (Sandbox Code Playgroud)

嗯...所以提交时它是空的?尝试将此添加到您的php文件的顶部:

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

好的,现在检查你的php.ini(通常需要在/ etc中使用sudo或root):

post_max_size = 8M
variables_order = "EGPCS"
Run Code Online (Sandbox Code Playgroud)

你有这两个规则吗?如果是这样,请注意分配的内存量.根据您的系统规格,超过2048MB的任何东西都可能开始给您带来麻烦.

注意:如果您对php.ini文件进行了更改并且PHP作为apache模块运行,则需要重新启动apache.有点像:

sudo /etc/init.d/httpd restart
Run Code Online (Sandbox Code Playgroud)

  • 它不起作用的答案是没用的.马修已经说过Var转储并告诉我们结果. (3认同)

zx1*_*986 5

一旦我设置post_max_size了同样的方法,我就破坏了我的post方法upload_max_filesize.

我认为post_max_size必须少于upload_max_filesize.
在RHEL 6.0中使用PHP 5.3.3进行了测试


Nid*_*hin 5

这可能是由于重写.htaccess文件中的规则.将此条件添加到.htaccess文件中

RewriteCond %{REQUEST_METHOD} !POST [NC]
Run Code Online (Sandbox Code Playgroud)

或者添加这一行

 RewriteRule ^welcome_post.php - [PT]
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢!我遇到了这个问题,你的第一个重写条件完全解决了!救了我几个小时的痛苦:) (2认同)