<?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.;</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.;</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.;</script>";
}else{//用户名、密码都正确,注册SESSION变量,然后跳转到首页
$_SESSION["username"]=$username;
$_SESSION["groupID"]=$rs["groupID"];
$_SESSION["islogined"]="OK";
echo"<script>alert('登陆成功!');location.;</script>";
}
}else{//如果没有这个用户
echo"<script>alert('没有这个用户,请返回检查!');location.;</script>";
}
?>
今天实现了添加论坛版块,用户注册、登陆的功能了,也知道了SESSION的基本用法。
更多相关Discuz论坛的内容来自木庄网络博客
标签:Discuz论坛
相关阅读 >>
discuz 论坛注册的时候提示 内部错误,无法显示此内容的解决方法
asp.net dropdownlist自定义控件,让你的分类更清晰
国内外知名php集成环境的优缺点分析,php集成环境包、php绿色集成环境推荐
更多相关阅读请进入《Discuz论坛》频道 >>
相关推荐
评论
管理员已关闭评论功能...