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

[php] 我的微型論壇的簡單教程[已完成]第6/8頁

 更新時間:2007年05月31日 00:00:00   作者:  

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

其中排序指論壇排列順序,SQL語句"order by forum_list asc";完全開放的話游客可以發(fā)表、回復帖子,否則只注冊會員才可以發(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>論壇簡介</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" />
      完全開放</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進行驗證,也可以提交到save_forum.php后進行必要的驗證。我這里對字符串檢驗不多說了,只研究插入數(shù)據(jù)的部分。
首先接收表單的值,要區(qū)分POST和GET方式,分別使用$_POST["**"]和$_GET["**"]來接受數(shù)據(jù)。

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

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

寫入數(shù)據(jù)庫數(shù)據(jù)的SQL語句大家都很熟悉了,用insert來實現(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ù)庫
header("location:index.php");    //執(zhí)行完插入則跳轉到首頁
?>

看看我添加頁面和顯示頁面吧:

最終顯示效果:

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

會員登陸見圖


先寫處理注冊信息的部分代碼:

<?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;        //剛注冊用戶發(fā)貼量肯定為0
$headimg="head/0.gif";    //默認用戶頭像
$sign="Nothing...";    //默認用戶的簽名$num=mysql_result(mysql_query("select count(*) from member where username='$username'"),0);    //檢查用戶名是否已經(jīng)被注冊
/*上面程序其實就是:
$sql="select count(*) from member where username='$username'";
$result=mysql_query($sql);
$num=mysql_result($result,0);
*/
if($num){    //當用戶名已經(jīng)被注冊時
    echo "<script>alert('該用戶名已經(jīng)被注冊!');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>";
}

這里出現(xiàn)了SESSION,用來標識用戶是否登陸。在PHP中的SESSION是怎樣用的呢?按照書上說的,注冊SESSION時應該這樣:

<?php
$username="abc";
session_register("username");
?>

實際上,我們可以這樣來用(象ASP那樣直接賦值給SESSION變量),使用SESSION時直接拿來用就可以了。

<?php
$username="abc";
$_SESSION["username"]=$username;

//下面查看SESSION是否已經(jīng)生效
if(session_is_registered("username")
    echo "SESSION變量已經(jīng)生效";
//因為它是變量,同樣也可以這樣來判斷
if(isset($_SESSION["username"]))
    echo "SESSION變量已經(jīng)生效";
?>

這里要說明的是,使用SESSION時,必須首先使用session_start()函數(shù)。所以,使用SESSION時的每個頁面,頭部都要有這個函數(shù)出現(xiàn)。

這個時候,注冊用戶已經(jīng)登陸了,那么,在首頁上應該體現(xiàn)出來吧,見下圖:

比較一下沒登陸前這個位置:

實現(xiàn)起來當然靠上面剛講的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"]來判斷是否管理員,如果是,則出現(xiàn)”論壇管理“的連接。

退出的頁面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);    //得到記錄的數(shù)量
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>";
}
?>

今天實現(xiàn)了添加論壇版塊,用戶注冊、登陸的功能了,也知道了SESSION的基本用法。

相關文章

最新評論