用session代替apache服务器验证
修改时间:[2011/08/14 00:58] 阅读次数:[894] 发表者:[起缘]
对于需要身份验证的页面,使用apache服务器验证是最好不过的了。 不过,apache服务器验证的界面不够友好。而且,并不是所有的情况 都可以使用apache服务器验证,比如cgi模式的php,iis下的php。
用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="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已经基本实现对身份的可靠验证。
|