先寫處理注冊(cè)信息的部分代碼:
<?php //reg.php require_once "conn.php";$username=$_POST["username"]; $password=md5(trim($_POST["password"])); $email=trim($_POST["email"]);$groupID=1; //默認(rèn)用戶等級(jí):1為注冊(cè)會(huì)員,2為管理員 $real_name="未知"; //默認(rèn)真實(shí)姓名,登陸后自己修改吧 $no_of_post=0; //剛注冊(cè)用戶發(fā)貼量肯定為0 $headimg="head/0.gif"; //默認(rèn)用戶頭像 $sign="Nothing..."; //默認(rèn)用戶的簽名$num=mysql_result(mysql_query("select count(*) from member where username='$username'"),0); //檢查用戶名是否已經(jīng)被注冊(cè) /*上面程序其實(shí)就是: $sql="select count(*) from member where username='$username'"; $result=mysql_query($sql); $num=mysql_result($result,0); */ if($num){ //當(dāng)用戶名已經(jīng)被注冊(cè)時(shí) echo "<script>alert('該用戶名已經(jīng)被注冊(cè)!');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); //注意插入當(dāng)前時(shí)間,00:00:00 00:00:00格式時(shí)用now(),看起來(lái)和ASP一樣哦…… //這里要特別注意了,注冊(cè)后會(huì)員就會(huì)自動(dòng)登陸,如下: $_SESSION["username"]=$username; $_SESSION["groupID"]='1'; $_SESSION["islogined"]="OK"; //我自己加的一個(gè)項(xiàng)目,可有可無(wú) echo "<script>alert('注冊(cè)成功!');location.href='index.php';</script>"; }
這里出現(xiàn)了SESSION,用來(lái)標(biāo)識(shí)用戶是否登陸。在PHP中的SESSION是怎樣用的呢?按照書上說(shuō)的,注冊(cè)SESSION時(shí)應(yīng)該這樣:
<?php $username="abc"; session_register("username"); ?>
實(shí)際上,我們可以這樣來(lái)用(象ASP那樣直接賦值給SESSION變量),使用SESSION時(shí)直接拿來(lái)用就可以了。
<?php $username="abc"; $_SESSION["username"]=$username;
//下面查看SESSION是否已經(jīng)生效 if(session_is_registered("username") echo "SESSION變量已經(jīng)生效"; //因?yàn)樗亲兞,同樣也可以這樣來(lái)判斷 if(isset($_SESSION["username"])) echo "SESSION變量已經(jīng)生效"; ?>
這里要說(shuō)明的是,使用SESSION時(shí),必須首先使用session_start()函數(shù)。所以,使用SESSION時(shí)的每個(gè)頁(yè)面,頭部都要有這個(gè)函數(shù)出現(xiàn)。
這個(gè)時(shí)候,注冊(cè)用戶已經(jīng)登陸了,那么,在首頁(yè)上應(yīng)該體現(xiàn)出來(lái)吧,見下圖:
比較一下沒(méi)登陸前這個(gè)位置:
實(shí)現(xiàn)起來(lái)當(dāng)然靠上面剛講的SESSION啦。代碼如下:
<?php session_start();
if(!isset($_SESSION["username"])||!isset($_SESSION["islogined"])){ echo"<a href=\"login.php\">登陸</a> <a href=\"register.php\">注冊(cè)</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>"; } ?>
上面的代碼應(yīng)該很簡(jiǎn)單,相信大家一看就會(huì)懂。值的一提的是,我用SESSION["groupID"]來(lái)判斷是否管理員,如果是,則出現(xiàn)”論壇管理“的連接。
退出的頁(yè)面loginout.php,邏輯很簡(jiǎn)單,把所有SESSION釋放掉就OK了,PHP中釋放全部SESSION的方法是:
<?php SESSION_DESTROY();//或者使用session_unregister()來(lái)注銷SESSION ?>
然后登陸其實(shí)也很簡(jiǎn)單了(你明白了注冊(cè)步驟,登陸就應(yīng)該很容易了)。部分代碼:
<?php session_start();require_once("conn.php");
//先接收用戶登陸表單傳來(lái)的值,這里略去$sql="select * from member where username='$username'"; $result=mysql_query($sql); $num=mysql_num_rows($result); //得到記錄的數(shù)量 if($num){ //如果用戶存在,則檢查密碼是否正確 $rs=mysql_fetch_array($result); if($rs["password"]!=md5($password)){ echo"<script>alert('密碼不正確,請(qǐng)返回檢查!');location.href='login.php';</script>"; }else{//用戶名、密碼都正確,注冊(cè)SESSION變量,然后跳轉(zhuǎn)到首頁(yè) $_SESSION["username"]=$username; $_SESSION["groupID"]=$rs["groupID"]; $_SESSION["islogined"]="OK"; echo"<script>alert('登陸成功!');location.href='index.php';</script>"; } }else{//如果沒(méi)有這個(gè)用戶 echo"<script>alert('沒(méi)有這個(gè)用戶,請(qǐng)返回檢查!');location.href='login.php';</script>"; } ?>
今天實(shí)現(xiàn)了添加論壇版塊,用戶注冊(cè)、登陸的功能了,也知道了SESSION的基本用法。
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 我的微型論壇的簡(jiǎn)單教程 [6] 下一頁(yè) 我的微型論壇的簡(jiǎn)單教程 [8]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|