Php 如何检查;按下“提交”按钮;工作

Php 如何检查;按下“提交”按钮;工作,php,Php,我对这种行为很好奇。假设代码如下: <form name="myfrom" action="" method="post"> Username: <input type="text" name="user" id="username" /> <input type="submit" name="submit_form" value="Submit" /> </form> <?php if($_POST['submit

我对这种行为很好奇。假设代码如下:

<form name="myfrom" action="" method="post">
    Username: <input type="text" name="user" id="username" />
    <input type="submit" name="submit_form" value="Submit" />
</form>

<?php
    if($_POST['submit_form'] == "Submit") {
        echo "do something";
    }
?>

用户名:

它起作用的原因是什么?这是因为当您单击submit按钮时,页面会再次重新加载,然后PHP脚本会再次运行吗?是否有解释?

如果您的意思是,如何在提交表单时进行测试尝试以下方法:

<form name="myfrom" action="" method="post">
    Username: <input type="text" name="user" id="username" />
    <input type="submit" name="submit_form" value="Submit" />
</form> 

<?php if(isset($_POST['user'])) {
    echo "do something";
}
?>

用户名:
如果你测试
if($\u POST['submit\u form']==“submit”)
你会得到正确答案。。i、 e 1

使用POST方法提交任何PHP表单时,都会在幕后发生以下情况:

  • 服务器获取所有HTML输入元素的值,并获取它们的名称
  • 然后,服务器按以下方式将名称和值放入POST数组:
{'name1'=>'value1'、'name2'=>'value2'、'name3'=>'value3'、'name4'=>'value4'…'name'=>'value'}

您可以通过在文本字段中输入一些文本来更改其值。但是,用户无法真正更改提交按钮的值,即提交按钮上显示的文本,因此每当您说
echo$\u POST['submit\u form']
时,您将始终获得在HTML中设置的值,即提交


希望这有帮助……

是的,当你不提交表单时,if条件为false。现在认真地说:打开chrome开发工具,看看你的脚本发送给自己的数据是什么。然后阅读一下什么是
$\u POST
(假设您已经知道什么是HTTP POST),到别处去阅读表单吧!当您单击“提交”时,浏览器将发送一个POST请求,您将在
if
语句中检测到该请求。并激活错误报告,以便您在提交表单之前看到条件失败的严重程度。当您将表单的
操作
字段留空时,表单将发送数据(包含在
$\u POST
数组中)再次发送到自身。这就是为什么您会遇到“页面重新加载”。按钮将在数组元素
$\u POST['Submit\u form']中发送其值
'Submit'
。我指的是幕后到底发生了什么。在这种情况下,我感兴趣的是,在用户单击“提交”按钮后,php在这种情况下的行为是如何的。@bpinhosilva:php不关心任何按钮,它只关心HTTP请求(本例中为POST)请看,基本上每当您提交表单并使用post方法时,所有输入字段的所有值都会添加到post字典中。因此,post字典如下所示:{'user'=>'What_ever_\u you_输入_在_text_字段','submit_form'=>'submit'} @bpinhosilva@bpinhosilva检查我的更新答案。@AnshumanDwibhashi,我看到了,非常感谢!我知道帖子是如何组织数据的,我只是想知道页面是否再次加载,以及这是否是php捕获定义提交的原因。。。