[php] 我的微型论坛的简单教程[已完成]第68页


当前第2页 返回上一页

<?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>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"register.php\">注册</a>";
}else{
echo $_SESSION["username"].",<a href=\"control.php\">我的资料</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"loginout.php\">注销</a>";
if($_SESSION["groupID"]=="2") echo "&nbsp;&nbsp;&nbsp;&nbsp;<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的基本用法。

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...