欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

[php] 我的微型論壇的簡(jiǎn)單教程[已完成]第6/8頁(yè)

 更新時(shí)間:2007年05月31日 00:00:00   作者:  

現(xiàn)在數(shù)據(jù)庫(kù)中還沒(méi)有數(shù)據(jù),所以,我們運(yùn)行首頁(yè),只顯示“對(duì)不起,論壇尚在建設(shè)中……”。既然我們很希望看到結(jié)果,就往數(shù)據(jù)庫(kù)中加幾條數(shù)據(jù)吧?。‘?dāng)然,直接在MySQL客戶端運(yùn)行查詢語(yǔ)句"insert into forums (field1,field2,...fieldN) values (value1,value2,...valueN)"是可行的,但是,作為WEB程序,這樣做顯然沒(méi)啥意義。我們靠表單來(lái)插入數(shù)據(jù)。
建立一個(gè)新文件:add_forum.php。首先說(shuō)明的是,這個(gè)頁(yè)面是管理員用來(lái)添加版塊的,開(kāi)始肯定要判斷當(dāng)前用戶有沒(méi)有管理權(quán)限。現(xiàn)在我們只為了首頁(yè)顯示數(shù)據(jù)而已,所以,可以先不加驗(yàn)證程序。我用DW做的添加論壇版塊的表單如下圖:

其中排序指論壇排列順序,SQL語(yǔ)句"order by forum_list asc";完全開(kāi)放的話游客可以發(fā)表、回復(fù)帖子,否則只注冊(cè)會(huì)員才可以發(fā)帖。
表單的HTML部分如下:

<form name="form" action="save_forum.php" method="post"><table width="400" border="0" align="center" cellpadding="5" cellspacing="1" class="mrg-top maintable">
  <tr id="title">
    <td colspan="2">論壇管理</td>
  </tr>
  <tr>
    <td width="23%"><strong>論壇名稱</strong></td>
    <td width="77%"><input name="forum_name" type="text" class="input" id="forum_name" /></td>
  </tr>
  <tr>
    <td><strong>論壇簡(jiǎn)介</strong></td>
    <td><textarea name="forum_description" cols="30" rows="5"></textarea></td>
  </tr>
  <tr>
    <td><strong>論壇排序</strong></td>
    <td><input name="forum_order" type="text" class="input" id="forum_order" />
      <input name="isguest" type="checkbox" id="isguest" value="1" />
      完全開(kāi)放</td>
  </tr>
  <tr>
    <td></td>
    <td><input name="Submit" type="submit" class="btn" value="添加" />
      <input name="Submit2" type="reset" class="btn" value="重置" /></td>
  </tr>
</table></form>

表單可以用JS或VBS進(jìn)行驗(yàn)證,也可以提交到save_forum.php后進(jìn)行必要的驗(yàn)證。我這里對(duì)字符串檢驗(yàn)不多說(shuō)了,只研究插入數(shù)據(jù)的部分。
首先接收表單的值,要區(qū)分POST和GET方式,分別使用$_POST["**"]和$_GET["**"]來(lái)接受數(shù)據(jù)。

<?php
$forum_name=$_POST["forum_name"];
$forum_description=$_POST["forum_description"];
$forum_order=$_POST["forum_order"];
$isguest=$_POST["isguest"];

//這里注意isguest是復(fù)選框,在MYSQL里用0和1來(lái)表示是否選中
$isguest=isset($isguest)?1:0;    //選中的話就是1,不選中的話就是0;
?>

寫入數(shù)據(jù)庫(kù)數(shù)據(jù)的SQL語(yǔ)句大家都很熟悉了,用insert來(lái)實(shí)現(xiàn):

<?php
require_once("conn.php");

//剛才接收值的程序

$sql="insert into forums (forum_name,forum_description,forum_order,isguest)values('$forum_name','$forum_description','$forum_order','$isguest')";
mysql_query($sql);    //到這里,數(shù)據(jù)已經(jīng)插入了數(shù)據(jù)庫(kù)
header("location:index.php");    //執(zhí)行完插入則跳轉(zhuǎn)到首頁(yè)
?>

看看我添加頁(yè)面和顯示頁(yè)面吧:

最終顯示效果:

OK,現(xiàn)在已經(jīng)實(shí)現(xiàn)了基本的數(shù)據(jù)插入和讀取了。嘿嘿……下一步,和上面道理一樣,注冊(cè)和登陸界面,同樣是用DW做表單,HTML代碼我不在贅述,抓個(gè)圖吧!會(huì)員注冊(cè)就填寫四個(gè)條件可以了(現(xiàn)在都講究用戶體驗(yàn),能少填就少填吧^@^必要的驗(yàn)證自己研究去)

會(huì)員登陸見(jiàn)圖


先寫處理注冊(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)吧,見(jiàn)下圖:

比較一下沒(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>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"register.php\">注冊(cè)</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>";
}
?>

上面的代碼應(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的基本用法。

相關(guān)文章

最新評(píng)論