0

我知道每个人都会说的第一件事就是这已经发布了数百次;但是,我已经尝试了人们建议的所有不同方法,但仍然没有运气......如果登录失败但由于某种原因不想出现该消息,我正在尝试弹出一条警报消息。这是我到目前为止所拥有的:

if($conn) {
    $result=sqlsrv_query($conn, "SELECT * FROM Operator
    WHERE Username='{$_POST['login']}'");
    $pass=sqlsrv_fetch_array($result);
    if($pass["Password"] === $_POST['password']) {
        session_start();
        $_SESSION['loggedin']=true;
        header("Location: home.php");
        exit;
    }
    else {
        header("Location: login.php");
        echo '<script type="text/javascript">';
        echo 'alert("Password Invalid!")';
        echo '</script>';
    }
}
sqlsrv_close($conn);

php 工作正常,但由于某种原因,我无法让 javascript 工作。有任何想法吗?

4

5 回答 5

3

我想,问题就在这里。您在警报消息之前重定向页面

header("Location: login.php"); /* Redirect browser */

尝试删除它,或者让它在几秒钟后重定向,就像这样

header( "refresh:5;url=login.php" ); //redirect after 5 seconds

或者您提示用户单击以转到下一页的对话框。删除 header() 寿

<script type="text/javascript">
<!--
   var retVal = confirm("Login FAILED! Do you want to continue ?");
   if( retVal == true ){
      window.location.href = "login.php";
      return true;
   }else{
      alert("User does not want to continue!");
      return false;
   }
//-->
</script>
于 2013-07-19T13:31:25.453 回答
1

在您的代码header("Location: login.php");中存在于您的 js 代码之前,因此它永远不会执行重定向到登录页面的 js 代码,删除它并尝试。

于 2013-07-19T13:31:02.307 回答
1

使用此代码

echo '<script>';
echo 'alert("Password Invalid!");';
echo 'location.href="login.php"';
echo '</script>';

代替

header("Location: login.php");
echo '<script type="text/javascript">';
echo 'alert("Password Invalid!");';
echo '</script>';

谢谢。

于 2013-07-19T15:24:04.613 回答
0

标头之后的代码没有运行,也许可以尝试设置一个会话变量并在 login.php 中检查该变量。然后,您可以从那里调用警报,或者只在页面上显示一条简单的消息。

于 2013-07-19T13:31:15.677 回答
0

警报后面缺少一个分号:

if($conn) {
    $result=sqlsrv_query($conn, "SELECT * FROM Operator
    WHERE Username='{$_POST['login']}'");
    $pass=sqlsrv_fetch_array($result);
    if($pass["Password"] === $_POST['password']) {
        session_start();
        $_SESSION['loggedin']=true;
        header("Location: home.php");
        exit;
    }
    else {
        header("Location: login.php");
        echo '<script type="text/javascript">';
        echo 'alert("Password Invalid!");';
        echo '</script>';
    }
}
sqlsrv_close($conn);

你没有检查 javscript 控制台吗?

编辑:对不起,我的错,分号当然不是必需的。

我在我的服务器上测试了你的 php 代码,它仍然可以正常工作!

于 2013-07-19T13:34:18.323 回答