PHP POST不工作

PHP POST不工作,php,html,forms,post,echo,Php,Html,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> 而不是: action='' 嗯。。。那么它在提交时

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

<?php echo $_POST['ss'];?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input name="ss" type="text" />
<input type="submit" name="submit">
</form>
而不是:

action=''
嗯。。。那么它在提交时是空的?尝试将其添加到php文件的顶部:

var_dump( $_POST );
好的,现在检查php.ini(通常需要sudo或root-in/etc):

你有这两条规则吗?如果是这样,请注意分配的内存量。任何超过2048MB的设备都可能给您带来麻烦,具体取决于您的系统规格

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

post_max_size = 8M
variables_order = "EGPCS"

有一次我将
post\u max\u size
设置为与
upload\u max\u filesize
相同,从而破坏了我的post方法

我认为
post\u max\u size
必须小于
upload\u max\u filesize


使用RHEL 6.0中的PHP 5.3.3进行测试,可能是由于重写了.htaccess文件中的规则。请将此条件添加到.htaccess文件中

sudo /etc/init.d/httpd restart
或者加上这一行

RewriteCond %{REQUEST_METHOD} !POST [NC]
用这个代替

 RewriteRule ^welcome_post.php - [PT]

我的朋友今天遇到了这个问题。答案很简单-基本上,你必须大写
method=“POST”

最终结果应该是

$variable_name = $_REQUEST["ss"];
echo $variable_name;


首先确保您的web服务(GET/POST等)使用所需的方式运行。然后,您应该检查您的PHP部分。

更改您的IDE,我使用phpstorm,这很好,但当我使用dreamweaver时,它可能会工作,为了测试,您可以直接从wampserver localhost运行您的页面,我更改apache的默认端口,我认为问题就出在那里,如果使用phpstorm或更改apache服务器的端口,请更改IDE。

method=“post”对于post数据很重要

请改用PHP请求:

<?php echo $_POST['ss'];?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<input name="ss" type="text" />
<input type="submit" name="submit">
</form>

PHP:
如果(isset($_请求['submit'])){
$val=$_请求['mail'];
echo$val;
}

我通过在标题中包含以下内容解决了我的问题

<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;
}

在发出请求时,只需在标题中使用此选项,我的问题就解决了。

终于……得到了。。。。首先,我的
htdocs
文件中有一个
Article
文件夹,其中
welcome.php
是重点关注的php文件,还有一个主
HTML
文件,我们将讨论其内容。 这是对我有用的东西。。 原来问题不是XAMPP或其任何相关文件。。 问题是:

Content-Type: application/x-www-form-urlencoded
这就成功了。现在提交按钮重定向到
https://localhost/Article/welcome.php
,此链接..这正是需要的。。 请记住,浏览器可能会向您询问一些权限问题。只要接受它们,它就会正常运行。。。 祝你好运。。
附言:这是针对Windows的。希望它在Linux和Mac上也能工作。

当你
print\r($\u POST)时,你会看到什么
?为什么要使用
$\u SERVER['PHP\u SELF']
,而如果你想让action属性提交给它自己,你可以将其保留为空?在我看来没问题,print\r($\u POST)向你展示了什么?我猜PHP\u SELF标记会把事情搞砸,并强制执行302Wasim,你有没有收到任何错误?如果没有,请尝试添加
ini\u集('display\u errors',1);错误报告(E_全部)这将让你看到是否还有其他东西阻止了你的成功。var_转储说什么?数组(0)?我在第一次页面加载say array()时打印了\u r($\u POST),但当我提交时,数组中没有任何内容。它不工作的答案是无用的。正如matthew所说,Var转储并告诉我们结果。嗯。。。可以你自己设置了php吗?检查我编辑的答案。@Wasim更改为8MB以上。很高兴我能帮上忙:-d事情就是这样发生的。非常感谢。非常感谢你!我遇到了这个问题,你的第一个重写条件完美地解决了它!救了我几个小时的痛苦:)这不可能。。。看不出是真的。“永远不要忘记在html表单属性中提供POST方法”-他们没有。您可以在问题的代码中清楚地看到它。如果旧缓存存储在Web浏览器中,则方法=“post”将不起作用。要使method=“post”处于活动状态,客户端必须验证post方法是否在缓存存储中工作。
<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;
}
Content-Type: application/x-www-form-urlencoded
<form action="welcome.php" method="post">
<form action="https://localhost/Article/welcome.php" method="post">