在php中登录后,模态没有显示出来

时间:2018-05-19 00:28:14

标签: javascript php

我添加header(location: homepage.php)后,我的模态没有显示,但如果移除header,模态工作正常。我怎么可能这样做?我也尝试使用echo进行警报并发生同样的事情,所以我不知道我的代码有什么问题。我希望有人能帮助我,谢谢你!这是我的代码

的login.php

if(isset($_POST['submit']))
{
    $email = $_POST['email'];
    $password = $_POST['password'];

    $object = new Login();
    $object->getCredentials($email, $password);
}
?>

<form  action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
<div>
 <label><b>EMAIL ADDRESS</b></label>
 <input type="email" name="email" placeholder="Email"></input>
</div>

<div>
 <label><b>PASSWORD</b></label>
 <input type="password" name="password" placeholder="Password"></input>
</div>
<button type="submit" id="submit" name="submit">Login</button>
</form>

processlogin.php

<?php
include_once 'db.php';
class Login
{
  public function getCredentials($email, $password)
  {     
    $email = $email;
    $password = $password;

    $object = new Db();
    $stmt = $object->connect()->prepare("SELECT * FROM user WHERE email=?");
    $stmt->execute([$email]);
    $stmtFetch = $stmt->fetch();

    if($stmt->rowCount()==1 && $stmtFetch['email'] == $email && $stmtFetch['password'] == $password)
    {
      echo "<script>$('#loginsuccess').modal('show')</script>";
      header("location: homepage.php");
    }
  }
}

2 个答案:

答案 0 :(得分:2)

我发现了一些你可能感兴趣的东西:
Interview Question: Can we have an echo before header?

问题是我们在开始发送输出后无法发送标头,如果您在echo之前发送标头,则echo将不会被执行。

试试这个:
解决方案1 ​​:(来自上面的链接)。

ob_start();
echo "<script>$('#loginsuccess').modal('show')</script>";
header("location: homepage.php");
ob_end_flush();

解决方案2:使用javascript重定向代替标题函数。

echo "<script>
        $('#loginsuccess').modal('show');
        window.location.replace('http://fullpath-homepage.php');
      </script>";

附加说明:
您也可以使用:

window.location.href="http://example.com";
window.location.assign("http://example.com");

replace方法导航到网址而不向历史记录添加新记录。

答案 1 :(得分:1)

更新:找到答案

我使用了Yeti82的答案,这就是我所做的延迟,以显示成功模式,然后指向下一页。

echo "<script>
        $('#loginsuccess').modal('show'); 

        setTimeout(function() {window.location.href=\"homepage.php\";}, 1000);

        </script>";