用户登录时弹出PHP确认窗口

用户登录时弹出PHP确认窗口,php,jquery,popup,Php,Jquery,Popup,我有一个无法解决的问题。 我制作了一个简单的php登录脚本,即使用SQL数据库获取登录数据。如果你登录,你应该得到一个弹出窗口,然后它应该重定向到主页再次。我不能让它工作。这是我当前的代码: <?php session_start(); $pdo = new PDO('mysql:host=localhost;dbname=users', 'root', ''); if(isset($_GET['login'])) {

我有一个无法解决的问题。 我制作了一个简单的php登录脚本,即使用SQL数据库获取登录数据。如果你登录,你应该得到一个弹出窗口,然后它应该重定向到主页再次。我不能让它工作。这是我当前的代码:

<?php
        session_start();
        $pdo = new PDO('mysql:host=localhost;dbname=users', 'root', '');

        if(isset($_GET['login'])) {
            $username = $_POST['username'];
            $passwort = $_POST['password'];

            $statement = $pdo->prepare("SELECT * FROM users WHERE username = :username");
            $result = $statement->execute(array('username' => $username));
            $user = $statement->fetch();

            if ($user !== false && password_verify($passwort, $user['password'])) {
                $_SESSION['userid'] = $user['id'];
                echo 'href=# class="big-link" data-reveal-id)"myModal"';
                die('Login erfolgreich. Weiter zu <a href="geheim.php">internen Bereich</a>');
            } else {
                $errorMessage = "E-Mail oder Passwort war ungültig<br>";
            }
        }
?>
<!DOCTYPE html>
<html>
<title>Login</title>
    <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script>
    <script type="text/javascript" src="jquery.reveal.js"></script>
    <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
        <link rel="stylesheet"  type ="text/css" href="styles.css">
    </head>
    <body>
        <?php 
          if(isset($errorMessage)) {
             echo $errorMessage;
            }
        ?>
        <a href="#" class="big-link" data-reveal-id="myModal">
            Fade and Pop
        </a>    s
    <div class="Header">
        Login
</div>
    <div class="Navbar">
            <a href="./index.php">Main</a>
            <a href="./uebersicht.php">Übersicht</a>
            <a href="./login.php">Login</a>
        </div>
    <div id="myModal" class="reveal-modal">
        <h1>Login erfolgreich</h1>
        <p>Du wirst gleich weitergeleitet</p>
        <a class="close-reveal-modal">&#215;</a>
    </div>
    <div class="Login">
        <form action="?login=1" method="post">
            <ul>
            <li>
                <label for="Username">Benutzer   </label>
                <input id="Username" type="text" name="username">
            </li>
            <li><label for "Password">Passwort      </label>
                <input id="Password" type="Password" name="password">
            </li>
            <li>
                <button>anmelden</button>
            </li>
            </ul>   
        </form>        
</body>
</html>

不确定这是否能解决您的问题,但您可以尝试一下

<a href="#" id="open_modal" class="big-link" data-reveal-id="myModal">Fade and Pop</a>

<?php if(isset($errorMessage)) { 
  echo $errorMessage;
} else {
?>
<script type="text/javascript">
  $('#open_modal').click();
</script>
<?php } ?>

$(“#打开_模式”)。单击();
您还应该使用最新的JQuery:

<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>


另一件事是,如果您想使用modals,那么使用modals会让您的生活更轻松

不确定这是否能解决您的问题,但您可以尝试一下

<a href="#" id="open_modal" class="big-link" data-reveal-id="myModal">Fade and Pop</a>

<?php if(isset($errorMessage)) { 
  echo $errorMessage;
} else {
?>
<script type="text/javascript">
  $('#open_modal').click();
</script>
<?php } ?>

$(“#打开_模式”)。单击();
您还应该使用最新的JQuery:

<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>


另一件事是,如果您想使用modals,在检查有效用户凭据的同时修改
PHP
代码,那么使用modals会让您的生活更轻松:

if ($user !== false && password_verify($passwort, $user['password'])) {
                $_SESSION['userid'] = $user['id'];
                $successMessage = "<script>$('a.big-link').trigger('click');</script>";
                die('Login erfolgreich. Weiter zu <a href="geheim.php">internen Bereich</a>');
            } else {
                $errorMessage = "E-Mail oder Passwort war ungültig<br>";
            }
if($user!==false&&password\u验证($passwort,$user['password'])){
$\会话['userid']=$user['id'];
$successMessage=“$('a.big-link').trigger('click');”;
死亡('Login erfolgreich.Weiter zu');
}否则{
$errorMessage=“发送电子邮件以获取通行证战争信息
”; }
HTML页面修改:

<body>
        <?php 
          if(isset($errorMessage)) {
             echo $errorMessage;
            }
          else if(isset($successMessage))
             echo $successMessage;
        ?>

在检查有效用户凭据时修改您的
PHP
代码:

if ($user !== false && password_verify($passwort, $user['password'])) {
                $_SESSION['userid'] = $user['id'];
                $successMessage = "<script>$('a.big-link').trigger('click');</script>";
                die('Login erfolgreich. Weiter zu <a href="geheim.php">internen Bereich</a>');
            } else {
                $errorMessage = "E-Mail oder Passwort war ungültig<br>";
            }
if($user!==false&&password\u验证($passwort,$user['password'])){
$\会话['userid']=$user['id'];
$successMessage=“$('a.big-link').trigger('click');”;
死亡('Login erfolgreich.Weiter zu');
}否则{
$errorMessage=“发送电子邮件以获取通行证战争信息
”; }
HTML页面修改:

<body>
        <?php 
          if(isset($errorMessage)) {
             echo $errorMessage;
            }
          else if(isset($successMessage))
             echo $successMessage;
        ?>


您的成功没有体现出模式<代码>$('#myModal').modal('show')这是为JS btw而不是PHP$('#myModal')。modal('show')将与基于引导的UI框架一起使用。不确定styles.css里面有什么,因为这里使用的是“jquery.reveal.js”(jquery中的模态插件)。这是我的样式的相关部分。css:你没有在成功中显示模态<代码>$('#myModal').modal('show')这是为JS btw而不是PHP$('#myModal')。modal('show')将与基于引导的UI框架一起使用。不确定styles.css里面有什么,因为这里使用的是“jquery.reveal.js”(jquery中的模态插件)。这是我的风格的相关部分。css:实际上我不希望“淡入淡出”出现在网站上,我只是把它从示例代码中删除。实际上我不希望“淡入淡出淡出淡出”出现在网站上,我只是从示例代码中删除了它。这似乎不起作用,我仍然没有得到弹出窗口。基本上,我想做的是,uppon loggin in successfull,我想得到一个确认弹出窗口,然后它应该重定向到另一个页面。使用未定义的常量successMessage-在第36行的C:\xamp\htdocs\login.php中假设“successMessage”就是我得到的。还尝试将$successMessage变量直接移动到会话_start()后面,我认为变量名称前的“$”符号丢失了…你介意将“$”放在successMessage之前(如果还没有出现)并尝试吗?好吧…这是由于isset()不存在且第一次变量未设置的原因…修改了似乎不起作用的答案,我仍然没有得到弹出窗口。基本上,我想做的是,uppon loggin in successfull,我想得到一个确认弹出窗口,然后它应该重定向到另一个页面。使用未定义的常量successMessage-在第36行的C:\xamp\htdocs\login.php中假设“successMessage”就是我得到的。还尝试将$successMessage变量直接移动到会话_start()后面,我认为变量名称前的“$”符号丢失了…您介意将“$”放在successMessage之前(如果还没有出现)并尝试吗?好的…这是由于isset()不存在且第一次变量未设置的原因…修改了答案