要登录,我使用:
<?php
session_start();
if($_POST){
$csUSER='USERNAME';
$csPASS='PASSWORD';
$user=$_POST['user'];
$pass=$_POST['pass'];
if ($user==$csUSER) {
if ($pass==$csPASS){
$_SESSION['cdb']="1";
header("Location: /");
exit;
} else {
$passerror='<span class="errormsg">Wrong Password.</span>';
} // END IF PASSWORD
} else {
$usererror='<span class="errormsg">Wrong Username.</span>';
} // END IF USERNAME
} // END IF $_POST
?>
允许我自己在每页(包括在所有页面[页面顶部]中)执行管理任务:
<?php
session_start();
if(isset($_SESSION['cdb'])){
$loggedn="WORD";
}
?>
这使我可以:
<?php
if ($loggedn=="WORD") { WHATEVER }
?>
为了确保我登录时只能访问后端页面(包括在所有后端页面中):
<?php
// backend login check
if($loggedn!="WORD") {
header("Location: /"); // if not logged in, go to homepage
exit;
}
?>
问题是,它在我的电脑上运行得很好,但我有另一台我妻子用来整理数据的电脑,而且它不能在她的电脑上登录。我们都使用带有FF的Linux(Fedora)。我已经在每一页上都写了一行代码,救命!
需要检查的几件事:
- 确保你从头开始。清除浏览器中的缓存和cookie,以确保不会打开旧会话
- 确保会话数据存储在新机器上。会话数据通常存储在/tmp中
- 确保没有执行与会话相关的客户端特定代码
重定向到另一个页面后,调用exit函数,否则无论如何都会执行以下代码,这可能会导致奇怪的行为。
if($loggedn != "WORD")
{
// redirect to login page
header("Location: login.php");
exit;
}
// the following code will be executed if exit is not called
...