一个程序中login.php的代码

我只是想让大家看看cookie和session在有会员的程序注册或登录的程序中如何使用,虽然也不是最好的,但想能起到抛砖引玉的作用

session_start();
if(isset(
$HTTP_COOKIE_VARS['PHPSESSID']))//如果有cookie变量PHPSESSIN
{
session_id($HTTP_COOKIE_VARS['PHPSESSID']);//取出PHPSESSID(就是sessionid),和服务器上对应的session建立连接
$PHPSESSID=$HTTP_COOKIE_VARS['PHPSESSID'];
}
else
$PHPSESSID=session_id();//如果没有就重新生产一个新的sessionid
setcookie('PHPSESSID',$PHPSESSID,time()+3600*2400,$cookie_path);//设cookie,保存sessionid

if($HTTP_GET_VARS['islogout']!=1&&isset($HTTP_POST_VARS['name']))//如果用户没有注销,并且存在由表单提交过来的用户名
{
$HTTP_SESSION_VARS['account']='guest';//先把session变量account,也就是当前已经登录的用户名冲掉(这点我现在觉得不好),变成guest
$HTTP_SESSION_VARS['isadm']=0;//也是清掉,isadm是我这个程序表示是否为管理员的变量
$HTTP_SESSION_VARS['style']=$HTTP_GET_VARS['style'];//style是我的程序中表示当前用户的样式,也就是模板
$query='select*fromka_accountwhereaccount="'.$HTTP_POST_VARS['name'].'";';
$result=mysql_query($query);//从数据库中取出该用户名的密码等信息
if(mysql_num_rows($result)==1)//如果找到一个匹配的
{
$rec=mysql_fetch_object($result);
if(
$rec->banned!=1){//如果用户没有被禁止
if(encrypt($HTTP_POST_VARS['passwd'])==$rec->passwd)//如果密码匹配,encrypt是我的加密函数,我使用了默认的md5
{
$HTTP_SESSION_VARS['account']=$rec->account;//设当session变量account为这个用户
$HTTP_SESSION_VARS['isadm']=$rec->isadm;//类似上面
$err="已登录";
}
else
$err="密码错误";
}
else
$err="账号被禁止";
}
else
$err="账号不存在";
}
if(
$HTTP_GET_VARS['islogout']==1)//如果用户在注销,就把所有的session变量设置成guest的
{
$HTTP_SESSION_VARS['account']='guest';
$HTTP_SESSION_VARS['isadm']=0;
$HTTP_SESSION_VARS['style']='default';
}

echo
$err;显示出错信息
<!-- php buffer end -->

这段代码里有个不好的地方,我还没有改,就是如果有人登录,再用别的帐号登录的话就会把原来的登录信息踢掉,而不是提示现在不能登录。还有,我没有判断提交页面是否为本服务器的页面。

呵呵,临时注释的,不知道清楚与否,如果有问题请跟帖

还有,我这个是适合php4.2以后版本的默认设置的,所有页面之间传递用的变量都是用新的表达方式,也适合以前版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值