我的代码不会在重定向中重定向到该网站 功能。正确登录时,模态登录只会消失。这不是WordPress网站。我们将此作为测试页面用于我们的一个客户的登录页面。这里 是代码(请原谅长代码):
<?php
session_start();
$userinfo = array(
'user1'=>'password1',
'user2'=>'password2'
);
if(isset($_GET['logout'])) {
$_SESSION['username'] = '';
header('Location: http://www.espn.com');
}
function redirect() {
$_SESSION['username'] = '';
header('Location: http://www.mgoblue.com');
exit();
}
if(isset($_POST['username'])) {
if($userinfo[$_POST['username']] == $_POST['password']) {
$_SESSION['username'] = $_POST['username'];
}else {
//Invalid Login
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!-- Button to open the modal login form -->
<button onclick="document.getElementById('id01').style.display='block'">Login</button>
<!-- The Modal -->
<div id="id01" class="modal">
<span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">×</span>
<?php if((isset($_SESSION['uname']))): ?>
<!--<p>You are logged in as <?=$_SESSION['username']?></p>-->
<!--<p><a href="?logout=1">Click to site</a></p>-->
<?php redirect(); ?>
<?php else: ?>
<!-- Modal Content -->
<form name="login" class="modal-content animate" action="" method="post">
<!-- No Avatar!!! -->
<!-- Login Info -->
<div class="container">
<label><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="username" required><br /><br />
<label><b>Password</b></label>
<input type="text" placeholder="Enter Password" name="password" required><br /><br />
<button type="submit">Login</button>
</div>
<div class="container" style="background-color:#f1f1f1">
<button type="button" onclick="document.getElementById('id01').style.display='none'" class="cancelbtn">Cancel</button>
</div>
</form>
<?php endif; ?>
</div>
</body>
</html>
除了CSS之外,我在代码中缺少什么?
答案 0 :(得分:1)
在您的代码中,您使用$ _SESSION [&#39;用户名&#39;]在顶部,然后检查下面的$ _SESSION [&#39; uname&#39;],这是从未设置过的是你的问题。
这只是一个侧面说明,但我通常会在位置标题之前添加重定向代码,如下所示: 标题(&#39; HTTP / 1.1 302 Found&#39;); 标题(&#39;位置:&#39;。$ uri);