我的reports.php页面一直将我重定向回登录页面,即使我已经登录了网站。我不太确定我在这里做错了什么。
报告页面:
<?php require_once('dbadmin.php');?>
<?php
session_start();
$user = $_SESSION['users'];
if(!isset($users)){
header("Location:admin_login.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>e</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<header><img src="images/eastersealsclevelogo.png" alt="Easter Seals Logo" width="445" height="300"</img> </header>
<nav>
<ul>
<li><a href="index.html" class="current">Home</a></li>
<li><a href="signup.php" class="current">Run Sign-Up</a></li>
<li><a href="refer.php" class="current">Refer-a-Friend</a></li>
<li><a href="admin_login.php" class="current">Admin Login</a></li>
<li><a href="reports.php" class="current">Reports</a></li>
</ul>
</nav>
<h1>Reports</h1>
<table border="1" style="width:100%">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Address</th>
<th>City</th>
<th>State</th>
<th>Distance</th>
</tr>
<?php
include('dbuser.php');
$select = "SELECT `fname`, `lname`, `email`, `distance` FROM runner ORDER BY `lname`";
$result = mysql_query($connect, $select) or die ('Oops! '.mysql_error($connect));
if($rowcnt==0){
echo "<tr><td colspan=3>There are currently no results.</td</tr>";}
while($row = mysql_fetch_assoc($result)) {
echo '<tr><td>'.$row['fname'].'</td>';
echo '<td>'.$row['lname'].'</td>';
echo '<td>'.$row['email'].'</td>';
echo '<td>'.$row['distance'].'</td></tr>';
}
?> </table>
<footer></footer>
</body>
</html>
adminlogin page:
<?php require_once('dbadmin.php');?>
<?php
session_start();
if(isset($_POST['adminlogin'])) {
$username = trim($_POST['user']);
$password = trim($_POST['password']);
include('dbadmin.php');
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysql_query($sql) or die("Invalid query: ".mysql_error());
if(mysql_num_rows($result)==0) {
$confirm = '<h2 style="color:red;">Invalid Credentials!</h2>';
} else {
$_SESSION['user'] = $username;
$confirm = '<h2> Login Successful</h2>';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>My Gaming Products Site</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<header><img src="images/eastersealsclevelogo.png" alt="Easter Seals Logo" width="445" height="300"/> </header>
<nav>
<ul>
<li><a href="index.html" class="current">Home</a></li>
<li><a href="signup.php" class="current">Run Sign-Up</a></li>
<li><a href="refer.php" class="current">Refer-a-Friend</a></li>
<li><a href="admin_login.php" class="current">Admin Login</a></li>
<li><a href="reports.php" class="current">Reports</a></li>
</ul>
</nav>
<h1>Enter Your Login Information</h1>
<?php if(isset($confirm)) echo $confirm; ?>
<form method="post" name="adminlogin" id="adminlogin" title="adminlogin" action="admin_login.php">
<p>User: <br> <input type="text" name="user"></p>
<p>Password: <br><input type="password" name="password"></p>
<p><input type="submit" name="adminlogin" id="adminlogin" value="Login"></p>
</form>
</p>
<footer>| WDD420</footer>
</body>
</body>
</html>
我认为这可能与我的报告页面有关,但我不确定它是否与登录页面有任何关系。
答案 0 :(得分:1)
在您的adminlogin.php页面中,会话变量为$ _SESSION ['user']。但在reports.php页面中,它会检查$ _SESSION ['users']。将其更改为$ _SESSION ['user']并将变量名称从$ users更改为$ user。
session_start();
$user = $_SESSION['user'];
if(!isset($user)){
header("Location:admin_login.php");
}
答案 1 :(得分:0)
尝试通过以下方式检查用户:
session_start();
if(!isset($_SESSION['users']) && empty($_SESSION['users'])){
header("Location:admin_login.php");
}
尝试此操作以检查变量是否已设置:
session_start();
if(isset($_SESSION['users']) && !empty($_SESSION['users'])) {
print_r($_SESSION['users']);
}
尝试此操作以检查=&gt; var_dump($_SESSION['users']);
将session_start();
放在php页面的第一行。
注意:另请注意,您需要调用session_start();如果您正在使用会话变量,请在每个页面上。
答案 2 :(得分:0)
尝试使您的脚本更具可读性,我建议使用函数:
<?php
function is_loggedin()
{
return (!empty($_SESSION['users']));
}
session_start();
if(!is_loggedin()){
header("Location:admin_login.php");
exit;
}
?>
通过执行$user = $_SESSION['users']
然后检查是否设置了$user
,因为您设置了它,所以总是如此。您需要查看empty()
。