我对stockoverflow.com相当陌生,因为我正在寻找一段时间的答案,我想,我把我的问题放在这里。底部是这样的:
index . php:
<body>
<div id=”login”> This <div> is hidden
<div>my Login form</div>
</div>
<ul>
<li>menu item</li>
<li>menu item </li>
<li>…</li>
<li><a href=”#” class=”login”>login</a></li>
</ul>
rest of my code……
</body>
login-form被这样调用:function.js
$('#login').hide();
$('.login').click(function() {
$('#login').show();
document.body.style.overflow = "hidden";
});
当我点击提交时,我可以用以下代码登录:
login.js$(文档)时函数(){
$("#message").hide();
$("#submit").click(function(){
$("#message").hide('normal');
$.ajax({
type: "POST",
url: 'login.php',
data: $("#main form").serialize(),
success: function(data)
{
if (data === 'true') {
$(".login").fadeOut(500);
$('.login).html("<div class='loader'></div>")
.hide()
.fadeIn(2500, function() {
$('.login).load('administrator/test.php');
})
}
else {
$('#message').slideDown('slow');
}
}
});
return false;
});
});
和php代码:login。
try {
$stmt = $db->prepare('SELECT * FROM table WHERE email = :email AND passenc = :pass' );
$stmt->execute(array(email => $email, 'pass' => $pass));
$count = $stmt->rowCount();
if ($count > 0) {
echo 'true';
$_SESSION['email'] = $email;
} else {
echo "false";
}
}
直到这里一切都很好,我可以登录并获得管理页面。也许有人能指点一下怎样做得更好。
但我的问题是:
如果我然后关闭加载或按F5我的index.php页面重新加载。没有什么问题,但我的问题开始了。
如果我然后再次单击login,那么当创建会话时,我将显示登录表单而不是受保护的页面。当创建会话并单击登录按钮时,页面重定向到受保护的页面,如果会话已过期,则加载登录表单,我该如何完成?
如果你想检查用户,如果已经登录然后重定向,把这段代码放在login.php
session_start();
$url = "your private page";
if ( isset($_SESSION['email']) )
{
header("Location :$url");
die();
}