用session可以在不同页面间保存用户身份,比如
login.php
<?
if ($name=="" && $pass=="")
{
?>
<form action="login.php">
user:<input type="text" name="name"><br>
pass:<input type="text" name="pass"><br>
<input type="submit" value="ok">
</form>
<?
}
else
{
if($name!="uuu" || $pass!="ppp")
{
echo "login fail!";
}
else
{
session_register("user");
session_register("passwd");
$user=$name;
$passwd=$pass;
echo "OK!<br><a href=http://www.sheup.com/?\"next.php\">next page</a>";
}
}
?>
next.php
<?
session_start();
echo "username:$user";
?>
但是,用户可以使用http://domain.name.com/next.php?user=uuu
来绕过身份验证。
所以,实际的next.php必须是这样:
<?
session_start();
if (!session_is_registered("user"))
{
echo "login fail";
}
else
{
echo "username:$user";
}
?>
使用session_is_registered()来检测session变量,
这样,用session已经基本实现对身份的可靠验证。