提交按钮不是在监听isset处理程序

时间:2013-02-02 19:34:50

标签: php forms events button handler

我没有很多PHP欺骗我的实例。但这肯定是其中之一,我已经检查了整整一天,并认为它可能来自第三方。但是一个告诉我这个错误是随机的症状是我甚至无法尝试设置一个字符串变量来从提交回发。 issetempty都无法捕获事件。当我按下提交时,我唯一看到的是我的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>

我已经调用了必要的POST,这是事件。

$txtUsername = $_POST["txtUsername"];
$txtPass = $_POST["txtPass"];
$btnLogin = $_POST["btnLogin"];
if(isset($btnLogin)){
$Error = "ok";
}

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你做错了。使用$btnLogin = $_POST["btnLogin"];时,实际上是在设置变量。因此,即使您从地址栏中点击了网址而没有按下提交按钮,您的脚本也会被执行。

而是使用 -

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