最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

[php] 我的微型論壇的簡單教程[已完成]

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

因為論壇本身的設置是如果該論壇完全開放的話,游客可以發(fā)帖子。

<?php
if(!isset($_SESSION["username"])){
    $_SESSION["username"]="Guest";
}
?>

那么該論壇的頁面應該相應的有添加帖子的按鈕:

<?php
$F=$_GET["F"];
$result=mysql_fetch_array(mysql_query("select isguest from forums where ID='$F'"));
$isguest=$result["isguest"];    //從數據庫中提取該論壇版塊是否完全開放,如果完全開放游客就可以發(fā)帖子了,否則只有注冊用戶才可以 if($isguest==0){
    if($_SESSION["username"] && $_SESSION["islogined"]) echo"<a href=addnew.php?F=$F><img src=\"images/add.gif\" /></a>";
}else{
    echo"<a href=addnew.php?F=$F><img src=\"images/add.gif\" /></a>";
}
?>

addnew.php?F=N 這里傳遞函數。表明添加新帖子要添加到論壇版塊。
添加頁面如圖所示:


點擊放大

這里的表單里會有一個隱藏字段,記錄論壇版面的ID號。

處理表單非常簡單,就是INSERT來實現:

<?php
require_once "global.php";
require_once "conn.php"; $F=$_POST["F"];
$title=$_POST["title"];
$content=$_POST["Content"];
$author=$_POST["username"];
$face=$_POST["face"]; $result=mysql_fetch_array(mysql_query("select isguest from forums where ID='$F'"));
$isguest=$result["isguest"]; //下面肯定要再驗證一下該論壇版塊用戶是否可以發(fā)帖
if($isguest==0){
    if(empty($_SESSION["username"])||empty($_SESSION["islogined"])){
    echo "<script>alert('您尚未登陸,請先登陸!');location='login.php';</script>";
    exit();
    }
} $sql="insert into topic (title,author,last_post_author,last_post_time,no_of_hit,no_of_reply,
locked,face,topic,good,forum_id) values ('$title','$author','$author',now(),0,0,0,'$face',0,0,'$F')";
mysql_query($sql); $topicID=mysql_insert_id();    //這里:mysql_insert_id()函數可以取出剛才插入操作成功后的ID值; //插入到主題表是第一步 $sql="insert into thread (topicID,face,title,author,post_time,subject) values ('$topicID','$face','$title','$author',now(),'$content')";
mysql_query($sql); //插入到帖子表是第二步 if($author!="Guest"){
$sql="update member set no_of_post = no_of_post + 1 where username='$author'";
mysql_query($sql); //如果不是游客的話就更新用戶表。其實這里用戶表中開始就應該存在一個管理員和一個游客的信息。游客發(fā)帖子默認的值為空,這樣即使更新也更新不了。
}
?>

現在我們來看thread.php。這個頁面和forums.php有很相似的地方,包括分頁。只是這里提取了thread表中的所有數據。

如下:

<?php
$sql="select A.ID,A.title,A.author,A.post_time,A.subject,A.face,B.groupID,B.email,
B.headimg,B.homepage,B.qq,B.MSN,B.jointime,B.no_of_post,B.sign from thread A,member B where A.topicID=$T and A.author = B.username order by A.post_time asc limit $p_start,$tread_list_rows";
$result=mysql_query($sql);
//這里的SQL語句是查詢2個表,MEMBER和THREAD表。 $sqlno="select * from thread where topicID='$T'";
$number=mysql_num_rows(mysql_query($sqlno)); while($row=mysql_fetch_array($result)){ //這里是HTML代碼 }
?>

果當前用戶有權限發(fā)表帖子,那么每頁下面將出現快速回復的表單。


點擊放大

<?php
if($isguest==0){
    if($_SESSION["username"] && $_SESSION["islogined"]){
        //這里是快速回復的HTML表單
    }
}else{
//這里是快速回復的HTML表單
} //思路也很簡單,如果完全開放,自然而然就出現回復表單,允許回復;否則如果用戶登陸,就出現回復表單。
?>

回復表單里要有主題帖子的ID編號。

回復的代碼同樣是插入,然后更新相關表。

<?php
require_once "global.php";
require_once "conn.php"; $F=$_POST["F"];
$T=$_POST["T"];
$title=$_POST["title"];
$content=$_POST["Content"];
$author=$_POST["username"];
$face=$_POST["face"];$result=mysql_fetch_array($db->db_query("select isguest from forums where ID='$F'"));
$isguest=$result["isguest"];

if($isguest==0){
    if(empty($_SESSION["username"])||empty($_SESSION["islogined"])){
    echo "<script>alert('您尚未登陸,請先登陸!');location='login.php';</script>";
    exit();
    }
}

$sql="insert into thread (topicID,face,title,author,post_time,subject) values ('$T','$face','$title','$author',now(),'$content')";
$db->mysql_query($sql);
//插入表,同時記錄TOPIC的主鍵 $sql="update topic set last_post_author ='$author',last_post_time=now(),no_of_reply = no_of_reply + 1 where ID = '$T'";
$db->mysql_query($sql);
//更新主題表,最后回復人,最后更新時間 $sql="update forums set last_post_author='$author',last_post_time=now() where ID='$F'";
$db->mysql_query($sql);
//更新論壇版塊的信息,最后回復,最后更新時間 if($author!="Guest"){
$sql="update member set no_of_post = no_of_post + 1 where username='$author'";
mysql_query($sql);
//更新發(fā)帖人的發(fā)帖數量
}
?>

編輯帖子,同樣要求權限。必須登陸;用戶必須是帖子的作者;管理員可以管理所有的帖子

<?php
if($_SESSION["groupID"]=="2"){
    echo"&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"editor.php?F=$F&T=$T&ID=$ID\" class=\"forum\">編輯</a>";
    }elseif($_SESSION["username"] && $_SESSION["islogined"]){
    if($_SESSION["username"]==$author) echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"editor.php?F=$F&T=$T&ID=$ID\" class=\"forum\">編輯</a>";
}
?>


點擊放大

<?php
require_once "global.php";
require_once "conn.php"; $F=$_GET["F"];
$T=$_GET["T"];
$ID=$_GET["ID"];
if(empty($F)||empty($T)||empty($ID)) echo "<script>history.back;</script>"; $sql="select A.author,A.title,A.face,A.subject,B.title as topictitle from thread A,topic B where A.ID='$ID' and A.topicID=B.ID";
$rs=mysql_fetch_array($db->db_query($sql));
$rename=$rs["author"];
$title=$rs["title"];
$face=$rs["face"];
$topictitle=$rs["topictitle"];
$resubject=$rs["subject"]; if($_SESSION["groupID"]!="2"){
if(($_SESSION["username"]!=$rename)||empty($_SESSION["islogined"])) echo "<script>history.go(-1);</script>";
} $sresult=mysql_fetch_array(mysql_query("select forum_name,isguest from forums where ID='$F'"));
$forum_name=$sresult["forum_name"]; //這里檢查當前用戶是否有編輯帖子的權限,并且按照ID號提取出該帖子的所有內容
?>

處理編輯的帖子就是更新原先數據。這里不做多說了。

//////////////////////////////////////////////////
下面到了個人資料管理。control.php,管理“我的資料”

這里比較簡單,也不再寫了。

正如5do8所說的,最好要把常用的程序(如連接數據庫)寫成類,容易管理,而且速度和性能上也有提高。我是個菜鳥,對于類不甚了解,想了解這個東西的朋友請參照這里:
http://www.phpchina.com/bbs/viewthread.php?tid=13765&highlight=

這里是按照我的理解來寫的這個論壇的連接數據庫類:dbclass.php

class Eastsin {
    function db_connect($db_host_ip,$db_login_name,$db_login_password){
    mysql_connect($db_host_ip,$db_login_name,$db_login_password);
    }
    function db_select($db_name){
    mysql_select_db($db_name);
    }
    function db_query($sql){
    return mysql_query($sql);
    }
    function db_fetch_array($result){
    return mysql_fetch_array($result);
    }
    function db_result($query,$row){
    return mysql_result($query,$row);
    }
    function db_rows($query){
    return mysql_num_rows($query);
    }
    function db_ID(){
    return mysql_insert_id();
    }
    function db_close(){
    mysql_close();
    }
}

在使用的時候:

$db=new Eastsin;  //初始化一個類,并把這個對象賦給變量$db
$db->db_selsct($dbname);    //訪問類的方法,類中定義的函數即為類的方法。 $sql="....";
$db->db_query($sql);
/*
上面兩句等同于:
$sql="....";
mysql_query($sql);
類中其他方法的使用同上;
*/

我的論壇還在完善中,還有關于安全性、容錯處理等我也再學習中。一個小論壇從思路上講還是比較簡單的,但是真正做起來還是要費些力氣和腦筋的。 (源文件請大家允許我稍后發(fā)布)

這樣,這個小教程算是簡單的完成了。作者水平有限,也沒有寫過教程的經驗,所以里面的不足之出大家多包涵指點。在此謝謝大家?。?BR>我的
QQ:278502721;
MSN:fengyuedao#hotmail.com或eastsin.com#hotmail.com;
E-mail:numsix#163.com
以上將#換成@
希望得到您的指導。

相關文章

  • PHP實現WebService的簡單示例和實現步驟

    PHP實現WebService的簡單示例和實現步驟

    這篇文章主要介紹了PHP實現WebService的簡單示例和實現步驟,本文直接給出示例代碼并分步驟講解,需要的朋友可以參考下
    2015-03-03
  • PHP將字符串首字母大小寫轉換的實例

    PHP將字符串首字母大小寫轉換的實例

    下面小編就為大家?guī)硪黄狿HP將字符串首字母大小寫轉換的實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • CodeIgniter CLI模式簡介

    CodeIgniter CLI模式簡介

    這篇文章主要介紹了CodeIgniter CLI模式,需要的朋友可以參考下
    2014-06-06
  • Codeigniter控制器controller繼承問題實例分析

    Codeigniter控制器controller繼承問題實例分析

    這篇文章主要介紹了Codeigniter控制器controller繼承問題,以簡單實例形式分析了CodeIgniter中針對控制器controller繼承的實現與使用方法,需要的朋友可以參考下
    2016-01-01
  • PHP網站開發(fā)中常用的8個小技巧

    PHP網站開發(fā)中常用的8個小技巧

    這篇文章主要介紹了PHP網站開發(fā)中常用的8個小技巧,本文講解了命名、使用、PHP判斷Form表單是否提交、PHP 獲取字符串長度、PHP超全局對象等內容,需要的朋友可以參考下
    2015-02-02
  • PHP開發(fā)中常用的十個代碼樣例

    PHP開發(fā)中常用的十個代碼樣例

    本文是小編日常收集整理的有關php開發(fā)中常用的十個代碼樣例,非常不錯,特此分享供大家參考
    2016-02-02
  • Laravel5.1 框架路由基礎詳解

    Laravel5.1 框架路由基礎詳解

    這篇文章主要介紹了Laravel5.1 框架路由基礎,結合實例形式分析了laravel5.1框架路由的基本原理、路由參數、正則約束等相關使用技巧,需要的朋友可以參考下
    2020-01-01
  • 從零開始學YII2框架(三)擴展插件yii2-gird

    從零開始學YII2框架(三)擴展插件yii2-gird

    yii2-gird 插件是Yii2.0的一個擴展。它在官方的girdview基礎上擴展了一些實用的功能。非常好用,推薦使用哦。
    2014-08-08
  • PHP 修改SESSION的生存時間案例詳解

    PHP 修改SESSION的生存時間案例詳解

    這篇文章主要介紹了PHP 修改SESSION的生存時間案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Zend Framework框架路由機制代碼分析

    Zend Framework框架路由機制代碼分析

    這篇文章主要介紹了Zend Framework框架路由機制,結合代碼分析了Zend Framework路由機制所涉及的控制器,路由器原理與相關代碼實現技巧,需要的朋友可以參考下
    2016-03-03

最新評論

乐平市| 卓尼县| 桂林市| 双江| 富川| 英德市| 泸溪县| 射阳县| 青铜峡市| 怀远县| 喀喇| 黄石市| 台东县| 陆川县| 满城县| 马山县| 互助| 胶南市| 清原| 龙岩市| 合江县| 扎赉特旗| 邵阳县| 木里| 淮南市| 赫章县| 固安县| 兴化市| 宁明县| 谢通门县| 铁岭县| 安阳市| 贵州省| 当涂县| 枣庄市| 普格县| 禄丰县| 永昌县| 台北县| 贵南县| 宁陕县|