用户登录时弹出PHP确认窗口
我有一个无法解决的问题。 我制作了一个简单的php登录脚本,即使用SQL数据库获取登录数据。如果你登录,你应该得到一个弹出窗口,然后它应该重定向到主页再次。我不能让它工作。这是我当前的代码:用户登录时弹出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
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">×</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()不存在且第一次变量未设置的原因…修改了答案