先写处理注册信息的部分代码:
<?php //reg.php require_once "conn.php";$username=$_POST["username"]; $password=md5(trim($_POST["password"])); $email=trim($_POST["email"]);$groupID=1; //默认用户等级:1为注册会员,2为管理员 $real_name="未知"; //默认真实姓名,登陆后自己修改吧 $no_of_post=0; //刚注册用户发贴量肯定为0 $headimg="head/0.gif"; //默认用户头像 $sign="Nothing..."; //默认用户的签名$num=mysql_result(mysql_query("select count(*) from member where username='$username'"),0); //检查用户名是否已经被注册 /*上面程序其实就是: $sql="select count(*) from member where username='$username'"; $result=mysql_query($sql); $num=mysql_result($result,0); */ if($num){ //当用户名已经被注册时 echo "<script>alert('该用户名已经被注册!');location.href='register.php';</script>"; }else{ $sql="insert into member (groupID,username,password,real_name,jointime,no_of_post,headimg, email,sign) values ('$groupID','$username','$password','$real_name',now(),'$no_of_post','$headimg','$email','$sign')"; $db->db_query($sql); //注意插入当前时间,00:00:00 00:00:00格式时用now(),看起来和ASP一样哦…… //这里要特别注意了,注册后会员就会自动登陆,如下: $_SESSION["username"]=$username; $_SESSION["groupID"]='1'; $_SESSION["islogined"]="OK"; //我自己加的一个项目,可有可无 echo "<script>alert('注册成功!');location.href='index.php';</script>"; }
这里出现了SESSION,用来标识用户是否登陆。在PHP中的SESSION是怎样用的呢?按照书上说的,注册SESSION时应该这样:
<?php $username="abc"; session_register("username"); ?>
实际上,我们可以这样来用(象ASP那样直接赋值给SESSION变量),使用SESSION时直接拿来用就可以了。
<?php $username="abc"; $_SESSION["username"]=$username;
//下面查看SESSION是否已经生效 if(session_is_registered("username") echo "SESSION变量已经生效"; //因为它是变量,同样也可以这样来判断 if(isset($_SESSION["username"])) echo "SESSION变量已经生效"; ?>
这里要说明的是,使用SESSION时,必须首先使用session_start()函数。所以,使用SESSION时的每个页面,头部都要有这个函数出现。
这个时候,注册用户已经登陆了,那么,在首页上应该体现出来吧,见下图:

比较一下没登陆前这个位置:

实现起来当然靠上面刚讲的SESSION啦。代码如下:
<?php session_start();
if(!isset($_SESSION["username"])||!isset($_SESSION["islogined"])){ echo"<a href=\"login.php\">登陆</a> <a href=\"register.php\">注册</a>"; }else{ echo $_SESSION["username"].",<a href=\"control.php\">我的资料</a> <a href=\"loginout.php\">注销</a>"; if($_SESSION["groupID"]=="2") echo " <a href=\"admin_forums.php\">论坛管理</a>"; } ?>
上面的代码应该很简单,相信大家一看就会懂。值的一提的是,我用SESSION["groupID"]来判断是否管理员,如果是,则出现”论坛管理“的连接。
退出的页面loginout.php,逻辑很简单,把所有SESSION释放掉就OK了,PHP中释放全部SESSION的方法是:
<?php SESSION_DESTROY();//或者使用session_unregister()来注销SESSION ?>
然后登陆其实也很简单了(你明白了注册步骤,登陆就应该很容易了)。部分代码:
<?php session_start();require_once("conn.php");
//先接收用户登陆表单传来的值,这里略去$sql="select * from member where username='$username'"; $result=mysql_query($sql); $num=mysql_num_rows($result); //得到记录的数量 if($num){ //如果用户存在,则检查密码是否正确 $rs=mysql_fetch_array($result); if($rs["password"]!=md5($password)){ echo"<script>alert('密码不正确,请返回检查!');location.href='login.php';</script>"; }else{//用户名、密码都正确,注册SESSION变量,然后跳转到首页 $_SESSION["username"]=$username; $_SESSION["groupID"]=$rs["groupID"]; $_SESSION["islogined"]="OK"; echo"<script>alert('登陆成功!');location.href='index.php';</script>"; } }else{//如果没有这个用户 echo"<script>alert('没有这个用户,请返回检查!');location.href='login.php';</script>"; } ?>
今天实现了添加论坛版块,用户注册、登陆的功能了,也知道了SESSION的基本用法。
出处:蓝色理想
责任编辑:moby
上一页 我的微型论坛的简单教程 [6] 下一页 我的微型论坛的简单教程 [8]
◎进入论坛网络编程版块参加讨论
|