0

我没有很多 PHP 对我不利的实例。但这肯定是其中之一,我已经检查了一整天,并认为它可能来自第 3 方。但是告诉我这个错误是随机的一个症状是我什至不能尝试设置一个字符串变量来从提交中回发。既不isset也不empty工作来捕捉事件。当我按下提交时,我唯一看到的是我的 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。

4

2 回答 2

1

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

于 2013-02-02T19:41:45.087 回答
0

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

而是使用 -

if(isset($_POST['btnLogin']){
      // do stuff
}else{
      // do other stuff
} 
于 2013-02-02T19:44:31.267 回答