我有这个脚本,如果用户没有登录,它会引导他/她进入登录表单。但问题是,当我登录并刷新页面时,它会带我回到登录页面,当我登陆并尝试复制链接和粘贴时,它也会带我回登录页面,而它假设是在注销后。
这里是登录脚本
<?php
session_start();
// Connect to server and select databse.
$link=mysql_connect("localhost","root", "mcl")or die("cannot connect");
mysql_select_db("mcl",$link)or die("cannot select DB");
// username and password sent from form
$fname=$_POST['fname'];
$password=$_POST['password'];
$sql="SELECT * FROM admin WHERE fname=('$_POST[fname]') and
password=('$_POST[password]')";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count>0){
$_SESSION['username'] = $_POST['fname'];
switch($_POST['fname']) {
case 'root': header("Location: dashboard.php"); break;
case 'accountant': header("Location: dash_accou.php"); break;
case 'secretary': header("Location: dash_secretary.php"); break;
}
exit;
}
else {
echo "<a href=index.php>Invald username or password <input name=Click here to reload
type=button disabled value= <<<Reload></a>";
}
?>
这里的脚本,指导用户从登录
<?php
session_start();
if(!isset($_SESSION['username']) || $_SESSION['username'] != 'root') {
header('Location: index.php');
exit;
}
?>
<?php
unset($_SESSION['username']);
?>
如有任何帮助,请感谢您的
if(!isset($_SESSION['username']) || $_SESSION['username'] != 'root') {
注意你的第二条。。这基本上意味着,如果用户名不是root,它无论如何都会将他重定向到登录页面,比如说,如果用户"Jack"登录……他仍然会被重定向到登录页,因为他的用户名不是"root"
此外,请注意mysql_*函数已被弃用,您应该使用Mysqli或PDO。您还应该确保通过使用准备好的语句来验证和净化您的输入,使其免受攻击。这对保证网站安全非常重要。