Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 提交按钮未侦听isset处理程序_Php_Forms_Events_Button_Handler - Fatal编程技术网

Php 提交按钮未侦听isset处理程序

Php 提交按钮未侦听isset处理程序,php,forms,events,button,handler,Php,Forms,Events,Button,Handler,我没有太多的PHP实例。但这肯定是其中之一,我已经检查了整整一天,并认为它可能来自第三方。但是一个症状告诉我这个错误是随机的,那就是我甚至不能尝试设置一个字符串变量来从submit发回。isset和empty都不能捕获事件。当我按下submit键时,我看到的唯一一件事就是我的txtbox变量被快速添加到URL中。但没有验证发生 现在我有一个登录页面的提交按钮,如下所示: <form action='Login.php' method='post'> <table ali

我没有太多的PHP实例。但这肯定是其中之一,我已经检查了整整一天,并认为它可能来自第三方。但是一个症状告诉我这个错误是随机的,那就是我甚至不能尝试设置一个字符串变量来从submit发回。
isset
empty
都不能捕获事件。当我按下submit键时,我看到的唯一一件事就是我的txtbox变量被快速添加到URL中。但没有验证发生

现在我有一个登录页面的提交按钮,如下所示:

<form action='Login.php' method='post'>
    <table align="center">
        <tr><td>Username</td></tr><tr>
        <td><input type="text" name="txtUsername"/></td></tr>
        <tr><td>Password</td></tr><tr>
        <td><input type="text" name="txtPass"/></td></tr>
        <td colspan="2"><input type="submit" name="btnLogin" ID="btnBlueTemp" value="Sign in!" /></td></tr>
        <tr><td class="errorLogin"><?php echo $Error;?></td></tr>
    </table>
</form>

什么会导致我的按钮处理程序不被捕获的问题?我正在使用Internet Explorer 9

不要使用提交按钮检查表单是否已提交。添加一个隐藏的表单字段并检查其是否已设置,或者使用其他机制。在firefox中你不会遇到这个问题,但在IE中你会遇到。

你做错了。当您使用
$btnLogin=$\u POST[“btnLogin”],您实际上正在设置变量。因此,即使您点击地址栏中的url而不点击提交按钮,您的脚本也会被执行

改为使用-

if(isset($_POST['btnLogin']){
      // do stuff
}else{
      // do other stuff
} 

我以前使用过extract($_POST),如果我使用
$btnLogin=$_POST[“btnLogin”]我正在设置变量。然后,当单击submit按钮时,第二次将my
$btnLogin
的页面postsback设置为true。这不是发生了什么吗?这是一个已知的问题?你给我举一个如何做隐藏字段的例子吗?当我第一次遇到这个问题时,我被告知,根据rfc,你不应该依靠提交按钮来检查表单是否已提交,我没有进一步研究irt,只是解决了这个问题。在表单中添加一个隐藏字段,如下所示:
if(isset($_POST['btnLogin']){
      // do stuff
}else{
      // do other stuff
}