久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

用PHP建立微型論壇的簡(jiǎn)單教程

瀏覽:121日期:2024-07-09 15:05:16
最好手邊能有一本PHP基礎(chǔ)的書(shū),我用的書(shū)一本是人民郵電的《精通PHP+MYSQL應(yīng)用開(kāi)發(fā)》(很多人都反映它不怎么樣);另一本是北京理工大學(xué)出版社的《PHP基礎(chǔ)教程》,書(shū)比較老了,但是介紹的PHP函數(shù)比較細(xì)致。我文字表達(dá)能力有限,希望看不明白的同學(xué)表罵我…… 另:我利用下班時(shí)間寫(xiě)這篇東西,打算一邊完善這個(gè)小論壇一邊寫(xiě)。因?yàn)闀r(shí)間有限,作者水平更有限,所以我準(zhǔn)備每天更新一點(diǎn)直到寫(xiě)完為止,要一下子全部寫(xiě)完我估計(jì)很有難度,希望大家見(jiàn)諒) 下面開(kāi)始吧: 我的論壇的功能: 用戶分三個(gè)級(jí)別:游客;注冊(cè)用戶;管理員 用戶:用戶注冊(cè);登陸;發(fā)帖;回復(fù);編輯自己的帖子; 管理員:管理(包括添加、修改、刪除)論壇版塊;管理帖子(置頂、精華、移動(dòng)、刪除); 如果版塊完全開(kāi)放則游客也可以發(fā)帖子。 1、PHP環(huán)境搭建及MYSQL安裝我不在說(shuō)了,經(jīng)典原來(lái)有詳細(xì)說(shuō)明的帖子。你還可以參照:http://bbs.blueidea.com/viewthread.php?tid=1645815或者h(yuǎn)ttp://www.phpe.net/articles/363.shtml這里來(lái)在你的電腦上搭建PHP運(yùn)行環(huán)境。我的環(huán)境:WIN2000+APACHE 2.23+MYSQL 5.02、建立數(shù)據(jù)庫(kù)。PHPMYADMIN是個(gè)不錯(cuò)的管理MYSQL的東東,大家可以使用它來(lái)建立數(shù)據(jù)庫(kù)。我用的是MYSQL-FRONT,也很好用。其實(shí)一個(gè)軟件,順手就好,用不著跟風(fēng)。呵呵?;蛘吣阋部梢允褂肕YSQL本身提供的MySQL Command Line Client來(lái)操作數(shù)據(jù)庫(kù):輸入登陸密碼,登陸成功后顯示如下:建立mybbs數(shù)據(jù)庫(kù),代碼如下:mysql> CREATE DATABASE mybbs;成功后顯示Query OK, 1 row affected。以下論壇建表同理:建立論壇版塊表forums,結(jié)構(gòu)如下:mysql>CREATE TABLE `forums` (->`ID` int(11) NOT NULL auto_increment,->`forum_name` varchar(50) NOT NULL default '',->`forum_description` varchar(200) NOT NULL default '',->`last_post_author` varchar(50) NOT NULL default '',->`last_post_time` datetime NOT NULL default '0000-00-00 00:00:00',->`forum_order` tinyint(3) NOT NULL default '0',->`isguest` tinyint(3) NOT NULL default '0',->PRIMARY KEY (`ID`)->);運(yùn)行成功后圖如下所示:建立用戶表member,結(jié)構(gòu)如下mysql>CREATE TABLE `member` (->`ID` int(11) NOT NULL auto_increment,->`groupID` tinyint(3) NOT NULL default '0',->`username` varchar(50) NOT NULL default '',->`real_name` varchar(50) NOT NULL default '',->`password` varchar(50) NOT NULL default '',->`email` varchar(50) NOT NULL default '',->`headimg` varchar(50) NOT NULL default '',->`homepage` varchar(50) default NULL,->`qq` varchar(10) default NULL,->`MSN` varchar(50) default NULL,->`jointime` datetime NOT NULL default '0000-00-00 00:00:00',->`no_of_post` smallint(6) default NULL,->`sign` varchar(200) default NULL,->PRIMARY KEY (`ID`)->);建立主題表tioic,如下:mysql>CREATE TABLE `topic` (->`ID` int(11) NOT NULL auto_increment,->`title` varchar(100) NOT NULL default '',->`author` varchar(50) NOT NULL default '',->`last_post_author` varchar(50) default NULL,->`last_post_time` datetime NOT NULL default '0000-00-00 00:00:00',->`no_of_hit` smallint(6) NOT NULL default '0',->`no_of_reply` mediumint(9) NOT NULL default '0',->`locked` tinyint(3) NOT NULL default '0',->`face` varchar(50) default NULL,->`topic` tinyint(3) NOT NULL default '0',->`good` tinyint(3) NOT NULL default '0',->`forum_id` mediumint(9) NOT NULL default '0',->PRIMARY KEY (`ID`)->);建立帖子表thread,結(jié)構(gòu)如下:mysql>CREATE TABLE `thread` (->`ID` int(11) NOT NULL auto_increment,->`topicID` smallint(6) NOT NULL default '0',->`face` varchar(50) default NULL,->`title` varchar(100) default NULL,->`author` varchar(50) NOT NULL default '',->`post_time` datetime NOT NULL default '0000-00-00 00:00:00',->`subject` mediumtext NOT NULL,->PRIMARY KEY (`ID`)->);3、連接數(shù)據(jù)庫(kù) (1)連接數(shù)據(jù)庫(kù):mysql_connect(string hostname,string username ,string password); hostname:服務(wù)器名。本機(jī)"localhost"username:登陸用戶名。我這里是"root"password:登陸密碼。我這里也是"root"(2)選擇數(shù)據(jù)庫(kù):mysql_select_db(string database_name,int[link_identifier]); database_name就是數(shù)據(jù)庫(kù)名,這里就是剛剛建立的mybbs了。 link_identifier:連接標(biāo)識(shí),不寫(xiě)就默認(rèn)是上次使用的連接,具體見(jiàn)下面。 完整的寫(xiě)法如下: <?php mysql_connect("localhost","root","root");//千萬(wàn)不要漏了分號(hào),唉,我自己就經(jīng)常漏掉…… mysql_select_db("mybbs"); /*或者你可以這樣寫(xiě): $connect_db=mysql_connect("localhost","root","root"); mysql_select_db("mybbs",$connect_db); */ ?> 就象ASP里的conn一樣,把這個(gè)連接單獨(dú)放到一個(gè)文件里,方便以后調(diào)用。不過(guò)ASP用的include,PHP中使用require()或者include()而已,如下: ASP中:<!--#include file="conn.asp"--> php中: <?php require("conn.php"); %> 或者: <?php include("conn.php"); ?> 如果你希望測(cè)試下剛才連接數(shù)據(jù)庫(kù)是否成功,就輸出mysql_error()來(lái)看: <?php mysql_connect("localhost","root","root"); mysql_select_db("mybbs"); echo mysql_error(); ?> 連接正常的話不會(huì)輸出輸出任何錯(cuò)誤的。 (3)關(guān)閉數(shù)據(jù)庫(kù)連接,可以釋放系統(tǒng)資源。 mysql_close(); 我們把連接和關(guān)閉數(shù)據(jù)庫(kù)的程序都寫(xiě)在一個(gè)文件conn.php中吧: CODE: <?php mysql_connect("localhost","root","root"); mysql_select_db("mybbs"); Function close_db(){ mysql_close(); } //注意:函數(shù)一種是帶返回值的,一種沒(méi)有值。 ?> 既然require()可以調(diào)用外部文件,我們不妨將常用的數(shù)據(jù)寫(xiě)進(jìn)變量里然后也單獨(dú)放在一個(gè)文件里,這和ASP道理一樣的。我命名了一個(gè)文件global.php,用來(lái)初始化這些數(shù)據(jù)。 <?php $gb_name="東訊科技PHP微型論壇"//微型論壇的名字,用在網(wǎng)頁(yè)的title標(biāo)簽里 $gb_version=" Version 1.0"//版本號(hào) $gb_copyright="Powered by <a target="_blank">Eastsin-東訊科技 2006</a>"//版權(quán)及連接 //其他的常用的數(shù)據(jù)可以在做程序的過(guò)程中不斷的加到這個(gè)文件中來(lái)。 ?> 現(xiàn)在已經(jīng)存在兩個(gè)文件了,一個(gè)conn.php,一個(gè)global.php。前一個(gè)是記錄和MYSQL連接的文件,后一個(gè)是記錄常用數(shù)據(jù)的文件。4、好了,上面數(shù)據(jù)庫(kù)也建立了,PHP連接數(shù)據(jù)庫(kù)我們也做好了。那么,我們?cè)搶W(xué)習(xí)對(duì)MYSQL數(shù)據(jù)庫(kù)進(jìn)行操作了吧: select 查詢; update 更新; insert 插入; delete 刪除; 如果你有ASP或其他語(yǔ)言基礎(chǔ)的話,我想理解應(yīng)該很easy吧! 那么第一步,從首頁(yè)開(kāi)始:讀取數(shù)據(jù)庫(kù)中的信息。首頁(yè)主要是循環(huán)顯示forums中的所有論壇版塊。對(duì)于有基礎(chǔ)的人來(lái)說(shuō),查詢語(yǔ)句很容易: <?php $sql="select * from forums"?> 那么,如何來(lái)執(zhí)行這個(gè)查詢語(yǔ)句呢?PHP中用mysql_query()函數(shù)來(lái)執(zhí)行SQL語(yǔ)句。這里要注意的是:mysql_query()函數(shù)來(lái)執(zhí)行SQL語(yǔ)句時(shí),如果執(zhí)行的是一個(gè)SELECT語(yǔ)句,執(zhí)行后返回一個(gè)INT型的標(biāo)識(shí),如果是非SELECT語(yǔ)句(INSERT,UPDATE等)返回的是boolean型的數(shù)據(jù)。所以有ASP基礎(chǔ)的同學(xué)不要把這里認(rèn)為成已經(jīng)成功得到記錄集。我們可以先來(lái)看看ASP: <!--#include file="conn.asp"--> <% sql="select * from forums" rs.open sql,conn,1,1 do while not rs.eof response.write rs("***") rs.movenext loop %> 如果得到了數(shù)據(jù),直接rs("***")就可以得到想要的數(shù)據(jù)了。但是PHP中這里,執(zhí)行完mysql_query()函數(shù),并沒(méi)有得到最終我們想要的數(shù)據(jù)。還需要使用其他函數(shù)來(lái)獲取最終數(shù)據(jù),我經(jīng)常使用mysql_fetch_array()和mysql_fetch_row()來(lái)獲取查詢結(jié)果。這兩個(gè)函數(shù)操作的對(duì)象都是剛才mysql_query()執(zhí)行后的結(jié)果。所以,我這樣寫(xiě): <?php require("conn.php"); //先把conn.php引入,目的就是打開(kāi)數(shù)據(jù)庫(kù)連接 $sql="select * from forums"$result=mysql_query($sql); while($rs=mysql_fetch_array($result)){ echo "論壇:".$rs["forum_name"]."</br>"} ?>這樣運(yùn)行,頁(yè)面沒(méi)有任何輸出,因?yàn)槲覀儎偨⒌臄?shù)據(jù)庫(kù)中沒(méi)有任何數(shù)據(jù)!那么,我希望讓論壇更加人性化,假如沒(méi)有論壇版塊應(yīng)該輸出“對(duì)不起,論壇尚在建設(shè)中……的字樣應(yīng)該怎么辦??mysql_num_rows()可以得到結(jié)果數(shù)目,mysql_result()也可以。 mysql_num_rows(int result)用來(lái)獲取查詢結(jié)果數(shù)目。參數(shù)result是mysql_query()等返回的結(jié)果標(biāo)識(shí); mysql_result(int resule,int row)用來(lái)獲取查詢記錄集,參數(shù)result是mysql_query()等返回的結(jié)果標(biāo)識(shí),row是要獲取記錄的行號(hào); 代碼如下: <?php require("conn.php"); $sql="select * from forums"$result=mysql_query($sql); $num=mysql_num_rows($result); if($num>0){ while($rs=mysql_fetch_array($result)){ echo "論壇:".$rs["forum_name"]."</br>"} }else{ echo "對(duì)不起,論壇尚在建設(shè)中……"} /* 或者你可以這樣寫(xiě) $sql="select count(*) from forums"$num=mysql_result(mysql_query($sql),0); $sql="select * from forums"$result=mysql_query($sql); 或者這樣寫(xiě) $sql="select count(*) as num from forums"$result=mysql_query($sql); $num=mysql_fetch_array["num"]; */ ?> 運(yùn)行結(jié)果如下圖: HOHO~~~~~,能夠讀取數(shù)據(jù)了,那下面我們?cè)撁阑幌挛覀兊氖醉?yè)了吧,用DW吧^@^。下面是首頁(yè)論壇列表的表格在DW中(我美工不匝地,望大家先不要扔磚頭……):代碼如下:<?phprequire("conn.php");……?><table width="90%" border="0" align="center" cellpadding="5" cellspacing="1"><tr><td colspan="3">論壇列表</td></tr><tr><td width="6%"><strong>狀態(tài)</strong></td><td width="70%"><strong>論壇</strong></td><td width="24%"><strong>最后更新</strong></td></tr><?php$sql="select * from forums";$result=mysql_query($sql);$num=mysql_num_rows($result);if($num>0){while($row=$db->db_fetch_array($result)){?><tr><td></td><td><?php echo "<div class="bold"><a class="forum" href="forums.php?F=".$row["ID"]."">".$row["forum_name"]."</a></div>".$row["forum_description"] ?></td><td><div><?php echo $row["last_post_time"]." By ".$row["last_post_author"]?></div></td></tr><?php}}else{echo "<tr><td colspan=3>對(duì)不起,論壇尚在建設(shè)中……</td></tr>";}close_db(); //調(diào)用close_db()函數(shù),關(guān)閉連接,釋放系統(tǒng)資源?></table>運(yùn)行結(jié)果如下圖:現(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;?>寫(xiě)入數(shù)據(jù)庫(kù)數(shù)據(jù)的SQL語(yǔ)句大家都很熟悉了,用insert來(lái)實(shí)現(xiàn):<?phprequire_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è)就填寫(xiě)四個(gè)條件可以了(現(xiàn)在都講究用戶體驗(yàn),能少填就少填吧^@^必要的驗(yàn)證自己研究去)會(huì)員登陸見(jiàn)圖先寫(xiě)處理注冊(cè)信息的部分代碼:<?php//reg.phprequire_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='http://www.gepszalag.com/bcjs/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='http://www.gepszalag.com/bcjs/index.php';</script>";}這里出現(xiàn)了SESSION,用來(lái)標(biāo)識(shí)用戶是否登陸。在PHP中的SESSION是怎樣用的呢?按照書(shū)上說(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啦。代碼如下:<?phpsession_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">注銷(xiāo)</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的方法是:<?phpSESSION_DESTROY();//或者使用session_unregister()來(lái)注銷(xiāo)SESSION?>然后登陸其實(shí)也很簡(jiǎn)單了(你明白了注冊(cè)步驟,登陸就應(yīng)該很容易了)。部分代碼:<?phpsession_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='http://www.gepszalag.com/bcjs/login.php';</script>";}else{//用戶名、密碼都正確,注冊(cè)SESSION變量,然后跳轉(zhuǎn)到首頁(yè)$_SESSION["username"]=$username;$_SESSION["groupID"]=$rs["groupID"];$_SESSION["islogined"]="OK";echo"<script>alert('登陸成功!');location.href='http://www.gepszalag.com/bcjs/index.php';</script>";}}else{//如果沒(méi)有這個(gè)用戶echo"<script>alert('沒(méi)有這個(gè)用戶,請(qǐng)返回檢查!');location.href='http://www.gepszalag.com/bcjs/login.php';</script>";}?>今天實(shí)現(xiàn)了添加論壇版塊,用戶注冊(cè)、登陸的功能了,也知道了SESSION的基本用法。我們?cè)诘谝徽吕镆呀?jīng)講了首頁(yè)如何顯示論壇版塊,當(dāng)然,在第二章節(jié)里我們論壇添加了排序功能,那么SQL語(yǔ)句當(dāng)然也應(yīng)該改成$sql="select * from forums order by forum_list",默認(rèn)為ASC,順序排列數(shù)據(jù)。現(xiàn)在我們來(lái)討論顯示分論壇顯示主題的情況。我命名為forums.php.利用F作為參數(shù),具體來(lái)顯示某個(gè)論壇的帖子?,F(xiàn)在我們進(jìn)入“測(cè)試版塊來(lái)顯示本論壇下的所有主題。顯示結(jié)果如圖:具體顯示主題列表要解決的主要問(wèn)提就PHP的分頁(yè)。PHP分頁(yè)我們可以使用LIMIT來(lái)實(shí)現(xiàn)。具體用法:"select clumn field1,...,filedN from table_name limit start_num,end_num";limit作用是限定結(jié)果行數(shù)。這里可以提取指定的條數(shù),也可以從查詢結(jié)果中取出中間值。舉個(gè)例子來(lái)說(shuō)明:$sql="select * from [topic] limit 5";作用是取出topic表中順序前5條數(shù)據(jù);$sql="select * from [topic] limit 9,10";提取10條信息,從第9條開(kāi)始提取。我們forums.php首先接收F的值:$F=$_GET["F"];注意這里是GET首先取得當(dāng)前論壇:<?phprequire_once("conn.php");require_once("global.php");$F=$_GET["F"];$sql="select forum_name from forums where ID='$F'";$result=mysql_query($sql);$rs=mysql_fetch_array($result);$forum_name=$rs["forum_name"];echo "當(dāng)前論壇為:<a href="index.php">$gb_name</a>-->>$forum_name";?>我們這里的分頁(yè)當(dāng)然使用"select clumn field1,...,filedN from table_name limit start_num,end_num";這種方式。end_num當(dāng)然就是我們global.php我們定義的論壇常用的變量$list_rows,而start_num如何計(jì)算呢?依靠的是當(dāng)前頁(yè)面intpage,每頁(yè)顯示條數(shù)$list_rows和總條數(shù)來(lái)結(jié)算的。代碼如下:<?php//接上面代碼$result=mysql_query("select count(ID) from topic where forum_id='$F'");$num=mysql_result($result,0); //獲得總條數(shù)$intpage=$_GET["intpage"];if($intpage) $intpage=1;$start_num=($intpage-1)*$list_rows; //獲取limit開(kāi)始位置$sql="select ID,title,author,last_post_author as la,last_post_time as lt,no_of_hit,no_of_reply,locked,face,topic,good from topic where forum_id='$F' order by topic desc,last_post_time desc limit $start_num,$list_rows";$result=mysql_query($sql);//這里當(dāng)然就是表格的HTML代碼啦,自己寫(xiě)吧if($num>0){while($rs=mysql_fetch_array($result)){$FID=$row["ID"];$author=$row["author"];$title=$row["title"];$no_of_reply=$row["no_of_reply"];$no_of_hit=$row["no_of_hit"];$lt=$row["lt"];$la=$row["la"];$topic=$row["topic"];$good=$row["good"];$locked=$row["locked"];$face=$row["face"];?><tr><td><?php echo "<img src="$face">" ?></td><td><?php echo "<div class="bold"><a class="forum" href="thread.php?T=".$FID."&F=".$F."">".$title."</a></div>" ?></td><td><?php echo $author ?></td><td><?php echo $no_of_reply." / ".$no_of_hit ?></td><td><div class="lastupdate"><?php echo $lt." By ".$la ?></div></td></tr><?php}Show_pages($num,$F,$intpage,$list_rows);}else{echo"本版塊沒(méi)有帖子";}?>顯示結(jié)果如下:分頁(yè)就是上面代碼中體現(xiàn)出來(lái)的Show_pages($num,$F,$intpage,$list_rows)。效果就是從1到10,從11-20這樣的分頁(yè)。分頁(yè)的思路就是這樣:我們得到了所需要的數(shù)據(jù):總記錄,當(dāng)前顯示頁(yè)碼,每頁(yè)顯示的條數(shù),總記錄和每頁(yè)顯示的條數(shù)可以得到總頁(yè)碼。如果總頁(yè)碼小于等于10,那么直接輸出 1到總頁(yè)碼就可以了。如果大于10,那就根據(jù)當(dāng)前頁(yè)碼顯示具體的分頁(yè),比如,總頁(yè)碼13頁(yè),當(dāng)前第11頁(yè),那么將按照11-13的顯示方式輸出。同時(shí)還會(huì)有上一頁(yè),下一頁(yè)等輔助翻頁(yè)按鈕。圖示如下:代碼如下:Function Show_pages($number,$F,$intpage,$list_rows){$pageno=ceil($number/$list_rows);echo "n<table width=90% border=0 align=center cellpadding=0 cellspacing=0 class=mrg-top>";echo " <tr>n <td align=right>n <table border=0 cellpadding=0 cellspacing=0>n <tr>";echo "<td id=pagetop>第".$intpage."頁(yè)/共".$pageno."頁(yè)</td>";if($pageno>1)echo "n <td><div class=pagefirst><a href=?intpage=1&F=".$F.$IsT."><<</a></div></td>";if($intpage>1)echo "n <td><div class=pagefirst><a href=?intpage=".($intpage-1)."&F=".$F.$IsT."><</a></div></td>";if($pageno>10){$a=Floor($pageno/10);$b=Floor($intpage/10);$c=$b*10+1;$d=$b*10+10;$e=$intpage%10;$g=($b-1)*10+1;if($intpage>10){if($b<$a){for($i=$c;$i<=$d;$i++) echo "n <td><div class=pagefirst><a href=?intpage=".$i."&F=".$F.">".$i."</a></div></td>";}elseif($e==0){for($i=$g;$i<=$intpage;$i++) echo "n <td><div class=pagefirst><a href=?intpage=".$i."&F=".$F.">".$i."</a></div></td>";}else{for($i=$c;$i<=$pageno;$i++) echo "n <td><div class=pagefirst><a href=?intpage=".$i."&F=".$F.">".$i."</a></div></td>";}}else{for($i=1;$i<=10;$i++)echo "n <td><div class=pagefirst><a href=?intpage=".$i."&F=".$F.">".$i."</a></div></td>";}}else{for($i=1;$i<=$pageno;$i++)echo "n <td><div class=pagefirst><a href=?intpage=".$i."&F=".$F.">".$i."</a></div></td>";}if($pageno>$intpage)echo "n <td><div class=pagefirst><a href=?intpage=".($intpage+1)."&F=".$F.">></a></div></td>";if($pageno>1)echo "n <td><div class=pagefirst><a href=?intpage=".$pageno."&F=".$F.">>></a></div></td>";echo "</td>n </tr>";echo "n</table></td></tr></table>";}我上面的代碼自己也認(rèn)為比較爛,有經(jīng)驗(yàn)的大鳥(niǎo)不要笑我……^@^,帖個(gè)好些的分頁(yè)代碼。分頁(yè)這里主要利用的就是LIMIT,熟悉了它的用法,簡(jiǎn)單的分頁(yè)程序就可以搞定了……因?yàn)檎搲旧淼脑O(shè)置是如果該論壇完全開(kāi)放的話,游客可以發(fā)帖子。<?phpif(!isset($_SESSION["username"])){$_SESSION["username"]="Guest";}?>那么該論壇的頁(yè)面應(yīng)該相應(yīng)的有添加帖子的按鈕:<?php$F=$_GET["F"];$result=mysql_fetch_array(mysql_query("select isguest from forums where ID='$F'"));$isguest=$result["isguest"]; //從數(shù)據(jù)庫(kù)中提取該論壇版塊是否完全開(kāi)放,如果完全開(kāi)放游客就可以發(fā)帖子了,否則只有注冊(cè)用戶才可以 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 這里傳遞函數(shù)。表明添加新帖子要添加到論壇版塊。添加頁(yè)面如圖所示:

點(diǎn)擊放大

這里的表單里會(huì)有一個(gè)隱藏字段,記錄論壇版面的ID號(hào)。處理表單非常簡(jiǎn)單,就是INSERT來(lái)實(shí)現(xiàn):<?phprequire_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"]; //下面肯定要再驗(yàn)證一下該論壇版塊用戶是否可以發(fā)帖if($isguest==0){if(empty($_SESSION["username"])||empty($_SESSION["islogined"])){echo "<script>alert('您尚未登陸,請(qǐng)先登陸!');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()函數(shù)可以取出剛才插入操作成功后的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); //如果不是游客的話就更新用戶表。其實(shí)這里用戶表中開(kāi)始就應(yīng)該存在一個(gè)管理員和一個(gè)游客的信息。游客發(fā)帖子默認(rèn)的值為空,這樣即使更新也更新不了。}?> 現(xiàn)在我們來(lái)看thread.php。這個(gè)頁(yè)面和forums.php有很相似的地方,包括分頁(yè)。只是這里提取了thread表中的所有數(shù)據(jù)。如下: <?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語(yǔ)句是查詢2個(gè)表,MEMBER和THREAD表。 $sqlno="select * from thread where topicID='$T'";$number=mysql_num_rows(mysql_query($sqlno)); while($row=mysql_fetch_array($result)){ //這里是HTML代碼 }?>果當(dāng)前用戶有權(quán)限發(fā)表帖子,那么每頁(yè)下面將出現(xiàn)快速回復(fù)的表單。

點(diǎn)擊放大

<?phpif($isguest==0){if($_SESSION["username"] && $_SESSION["islogined"]){//這里是快速回復(fù)的HTML表單}}else{//這里是快速回復(fù)的HTML表單} //思路也很簡(jiǎn)單,如果完全開(kāi)放,自然而然就出現(xiàn)回復(fù)表單,允許回復(fù);否則如果用戶登陸,就出現(xiàn)回復(fù)表單。?>回復(fù)表單里要有主題帖子的ID編號(hào)?;貜?fù)的代碼同樣是插入,然后更新相關(guān)表。<?phprequire_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('您尚未登陸,請(qǐng)先登陸!');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);//插入表,同時(shí)記錄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);//更新主題表,最后回復(fù)人,最后更新時(shí)間 $sql="update forums set last_post_author='$author',last_post_time=now() where ID='$F'";$db->mysql_query($sql);//更新論壇版塊的信息,最后回復(fù),最后更新時(shí)間 if($author!="Guest"){$sql="update member set no_of_post = no_of_post + 1 where username='$author'";mysql_query($sql);//更新發(fā)帖人的發(fā)帖數(shù)量}?>編輯帖子,同樣要求權(quán)限。必須登陸;用戶必須是帖子的作者;管理員可以管理所有的帖子<?phpif($_SESSION["groupID"]=="2"){echo" <a href="editor.php?F=$F&T=$T&ID=$ID" class="forum">編輯</a>";}elseif($_SESSION["username"] && $_SESSION["islogined"]){if($_SESSION["username"]==$author) echo " <a href="editor.php?F=$F&T=$T&ID=$ID" class="forum">編輯</a>";}?>

點(diǎn)擊放大

<?phprequire_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. 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"]; //這里檢查當(dāng)前用戶是否有編輯帖子的權(quán)限,并且按照ID號(hào)提取出該帖子的所有內(nèi)容?> 處理編輯的帖子就是更新原先數(shù)據(jù)。這里不做多說(shuō)了。//////////////////////////////////////////////////下面到了個(gè)人資料管理。control.php,管理“我的資料這里比較簡(jiǎn)單,也不再寫(xiě)了。正如5do8所說(shuō)的,最好要把常用的程序(如連接數(shù)據(jù)庫(kù))寫(xiě)成類(lèi),容易管理,而且速度和性能上也有提高。我是個(gè)菜鳥(niǎo),對(duì)于類(lèi)不甚了解,想了解這個(gè)東西的朋友請(qǐng)參照這里:http://www.phpchina.com/bbs/viewthread.php?tid=13765&highlight=這里是按照我的理解來(lái)寫(xiě)的這個(gè)論壇的連接數(shù)據(jù)庫(kù)類(lèi):dbclass.phpclass 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();}}在使用的時(shí)候:$db=new Eastsin; //初始化一個(gè)類(lèi),并把這個(gè)對(duì)象賦給變量$db$db->db_selsct($dbname); //訪問(wèn)類(lèi)的方法,類(lèi)中定義的函數(shù)即為類(lèi)的方法。 $sql="....";$db->db_query($sql);/*上面兩句等同于:$sql="....";mysql_query($sql);類(lèi)中其他方法的使用同上;*/我的論壇還在完善中,還有關(guān)于安全性、容錯(cuò)處理等我也再學(xué)習(xí)中。一個(gè)小論壇從思路上講還是比較簡(jiǎn)單的,但是真正做起來(lái)還是要費(fèi)些力氣和腦筋的。 (源文件請(qǐng)大家允許我稍后發(fā)布)這樣,這個(gè)小教程算是簡(jiǎn)單的完成了。作者水平有限,也沒(méi)有寫(xiě)過(guò)教程的經(jīng)驗(yàn),所以里面的不足之出大家多包涵指點(diǎn)。在此謝謝大家??!我的QQ:278502721;MSN:fengyuedao#hotmail.com或eastsin.com#hotmail.com;E-mail:numsix#163.com以上將#換成@希望得到您的指導(dǎo)。
標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 亚洲精品免费视频 | 精品欧美一区二区三区久久久 | 一区在线视频 | 九九久久精品 | 成人久久久精品乱码一区二区三区 | 精品久久久久久久久久 | 天久久 | 在线99视频 | 亚洲视频观看 | 亚洲一区中文字幕在线观看 | 国产资源在线观看 | 亚洲国产精品久久久久久 | 激情五月综合网 | 日韩欧美一区二区三区四区 | 91精品国产综合久久久蜜臀图片 | 美女131mm久久爽爽免费 | 一区二区三区在线 | 欧 | 五月婷婷色 | 国产亚洲精品精品国产亚洲综合 | 亚洲国产精品久久久 | 97成人在线视频 | 精品一二三区在线观看 | 中文字幕亚洲一区 | 国产视频精品一区二区三区 | 欧美一区二区三区男人的天堂 | 国内成人精品2018免费看 | 国产午夜精品一区二区三区视频 | 四虎永久免费影院 | 五月天在线婷婷 | 一区在线播放 | 国产91极品| 亚洲va中文字幕 | 中文字幕精品一区二区三区精品 | 精品成人av| 不卡视频一区 | 精品一区二区在线观看 | 色综久久 | 国产精品色在线网站 | 成人小视频在线播放 | 亚洲狠狠 | 免费不卡视频 | 男人天堂亚洲天堂 | 欧美福利影院 | 久久青青操 | 成人在线小视频 | 欧美一级欧美三级在线观看 | 国产高清免费视频 | 国产中文在线 | 特级毛片在线 | 国产欧美综合一区二区三区 | 色精品 | 欧美国产视频一区 | av黄色在线观看 | 北条麻妃99精品青青久久主播 | 久久精品久| 国产视频网 | 欧美激情a∨在线视频播放 成人免费共享视频 | 国产精品成人在线观看 | 黄免费视频 | 日韩不卡一区二区三区 | 亚洲精品在线视频 | 国产精品美女久久久久aⅴ国产馆 | www.日韩.com | 欧美日韩精品一区二区三区在线观看 | 91免费在线看| 亚洲人成网站999久久久综合 | 国产综合亚洲精品一区二 | 黄色日本视频 | 一区二区三区在线播放视频 | 91精品国产综合久久久久久 | av一区二区三区四区 | 日韩毛片在线观看 | 久久香蕉国产视频 | 一级毛片免费完整视频 | 成人在线播放 | 日韩精品 电影一区 亚洲 | 奇米色777欧美一区二区 | 婷婷久久综合 | 伊人看片 | 国产一级片 | 久久久久久久久久国产精品 | 亚洲欧美日本在线 | 91在线观看视频 | 9色porny自拍视频一区二区 | 一区 | 午夜精品久久久久 | 亚洲欧美日韩精品久久奇米色影视 | 中文在线一区 | 亚洲精选一区二区 | 国产一区二区在线视频观看 | 999在线观看精品免费不卡网站 | a级片视频在线观看 | 亚洲国产婷婷香蕉久久久久久99 | 久在线视频 | 色婷婷久久一区二区三区麻豆 | 久久久成人av | 日本黄色大片免费 | 欧美日本国产 | 欧美日韩综合在线 | 久久精品欧美一区二区三区不卡 | 在线日韩欧美 | 国产欧美精品一区二区 | 欧美精品一区三区 | 97国产在线视频 | 欧美日韩在线电影 | 草久在线视频 | 成人久久18免费网站图片 | 久久久久免费观看 | 噜噜噜噜噜色 | 午夜影院a | 超碰精品在线观看 | 国产成人免费视频网站高清观看视频 | 久久国产精品99久久久久久牛牛 | 成人日韩 | 国产免费自拍 | 天堂福利影院 | 天操天天干| 精品少妇一区二区三区 | 美女久久| 国产精品久久久久久久久免费丝袜 | 国产黄色大片网站 | www伊人| 亚洲国产高清在线 | 久久99精品视频 | 91精品综合久久久久久五月天 | 91av视频在线观看 | 精品一区二区免费视频 | 91麻豆精品国产91久久久久久久久 | 欧美精品一区二区三区蜜桃视频 | 九一亚洲精品 | 久久99精品久久久久久园产越南 | 欧美日本三级 | 亚洲一二三区电影 | 日韩成人tv | 欧美日韩精品一区二区三区四区 | 色综合久久一区二区三区 | 国产日韩欧美在线 | 国产精品一区二 | 日韩不卡| 欧美激情在线狂野欧美精品 | 国产精品久久久久久久久大全 | 免费国产网站 | 欧美亚洲二区 | 无码一区二区三区视频 | 最新国产精品 | 日韩一区二区在线免费观看 | 男女av在线 | 国产日韩精品一区二区 | 日韩在线小视频 | 日本日韩中文字幕 | 久久综合一区二区 | 四虎影院在线免费播放 | 自拍视频在线 | av资源中文在线天堂 | 日韩精品在线一区 | 国产成人精品免高潮在线观看 | 91中文字幕 | 日韩综合视频在线观看 | 国产a久久精品一区二区三区 | 日韩国产二区 | 国产成人精品999在线观看 | 欧美一级在线观看 | 精品亚洲永久免费精品 | 成人性毛片 | 伊人色综合久久天天五月婷 | 欧美亚洲专区 | 亚洲高清视频一区二区三区 | 国产精品地址 | 欧美亚洲在线 | 亚洲人黄色片 | 精品久久久久久久久久久久久久 | 永久av| 精品久久久一区 | 一级视频在线免费观看 | 久久亚洲一区二区三区四区五区高 | 亚洲日韩成人 | 蜜桃精品在线观看 | 成人h在线 | 久久精品欧美一区二区三区不卡 | 久久久久网站 | 日韩精品观看 | 亚洲欧美日韩在线 | 伊人网亚洲 | 午夜免费电影 | 欧美精品国产精品 | 91在线资源 | 在线视频亚洲 | 一区二区三区久久 | 国产精品成人在线观看 | 亚洲精品久久久一区二区三区 | 亚洲欧美网址 | 国产精品久久视频 | 日韩欧美精品一区二区三区 | 特级黄一级播放 | 久久国产精品免费一区二区三区 | 美女国产| 欧美日韩一 | 欧美久久久 | 日本免费一区二区视频 | 精品久久99 | 一区二区三区国产视频 | 久久精品无码一区二区三区 | 欧美一级二级三级视频 | 成人中文网 | 91av导航| 亚洲成人黄色 | 久久三区| 国产精品综合视频 | 成人亚洲精品久久久久软件 | 韩国电影久久 | 欧美自拍视频 | 一区不卡 | av一区二区三区四区 | 日韩欧美第一页 | 亚洲成人精品在线观看 | 麻豆产精国品免费入口 | 亚洲视频三区 | 一区二区在线 | 91麻豆精品国产91久久久更新资源速度超快 | 每日更新亚洲 | t66y最新地址一地址二69 | 色久视频 | 国产精品久久久久久久久久久久久 | 激情.com | 久久91精品国产91久久跳 | 天天操综合网 | 亚洲精品视频免费观看 | 在线观看精品视频网站 | 免费黄色片一区二区 | 欧美久久综合 | 精品二区| 日韩在线免费 | 亚洲精品www| 精品一区二区久久 | 综合伊人 | 日本高清视频在线播放 | 欧美精品导航 | 人人人人人你人人人人人 | www国产亚洲精品久久网站 | 久久久久久免费毛片精品 | 国产精品高清一区二区 | 亚洲 欧美 另类 综合 偷拍 | 中文字幕一二三 | 中文字幕免费看 | 亚洲成熟少妇视频在线观看 | 自拍偷拍一区二区三区 | 精品伦精品一区二区三区视频 | 久久精品一区二区 | 超碰免费在线观看 | 国产成人在线播放 | 日韩中文字幕在线免费观看 | 蜜臀在线视频 | 五月激情婷婷六月 | 亚洲一区二区免费在线观看 | 激情综合久久 | 91精品一区二区三区久久久久久 | 免费观看一级黄色片 | 国产精品永久 | 亚洲乱码一区二区 | 欧美一区二区三区视频 | 精品无人乱码一区二区三区 | 亚洲一区二区免费在线观看 | av片在线免费观看 | 亚洲一区视频在线 | av网站免费| 99热欧美 | 日本黄色三级网站 | 91精品国产综合久久久久久丝袜 | 国产在线观看一区二区三区 | 国产精品女教师av久久 | 欧美日韩一区二区三区四区 | 精品一区二区三区三区 | 久久综合久久综合久久 | 99精品久久久久久久免费 | 国厂黄色片 | 国产成人在线视频 | 国产成人在线一区 | 欧美一区二区三区视频 | 国产精品久久久久久久福利院 | 国产一区在线不卡 | 日韩性网站 | 国产美女精品 | 国产一级免费视频 | 国产性猛交xxxx免费看久久 | 日本天天操 | 91视视频在线观看入口直接观看 | 国产偷录视频叫床高潮对白 | 黄网站涩免费蜜桃网站 | 欧美一区二区三 | 伊人春色成人 | 国产一区二精品区在线 | 久久一区国产 | 午夜在线免费观看 | 国产精品久久久久久久久 | 一区二区三区在线不卡 | 成人免费视频网 | 天天插天天射天天干 | 日日摸夜夜添夜夜添亚洲女人 | 欧美色综合 | 欧美日韩国产一区二区三区 | 精品视频一区二区三区在线观看 | 国产精品地址 | 中文字幕视频一区 | 国产三区在线观看视频 | 亚洲精彩视频 | a级在线免费 | 亚洲国产精品18久久 | 国产一级视频免费观看 | 一区二区在线看 | a级三四级黄大片 | 亚洲视频二区 | 在线观看成人av | 午夜网 | 国产亚洲成av人片在线观看桃 | 麻豆一区二区三区 | 精品成人一区 | 91性高湖久久久久久久久网站 | 国产精品不卡视频 | 欧美视频xxx | 青青草在线视频免费观看 | 精品国产一区二区三区久久久蜜 | 性一交一乱一透一a级 | 日韩欧美~中文字幕 | 久久国产婷婷国产香蕉 | 国产视频二区 | 国产成人在线看 | 99久久99久久精品国产片果冻 | 午夜久久久 | 国产精品久久国产精品99 gif | 午夜精品久久久久久久久久久久久 | 色婷婷亚洲一区二区三区 | 欧美成人精品一区 | 欧美亚洲视频在线观看 | 亚洲麻豆 | 日本在线免费电影 | 日本免费三片免费观看 | 久久久亚洲 | 国产自在现线2019 | 91精品在线观看入口 | 成人在线免费电影 | 日本不卡高字幕在线2019 | 日日精品| 免费观看一级特黄欧美大片 | 黄色片视频免费 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 91亚洲国产成人久久精品网站 | 国产精品久久久久国产a级 日韩在线二区 | 亚洲+变态+欧美+另类+精品 | 中文无码久久精品 | 性色爽爱 | 精品亚洲一区二区 | 日韩一区二区在线视频 | 亚洲一区免费观看 | 97超碰在线播放 | 一区二区三区观看视频 | 一区二区电影 | 日本大人吃奶视频xxxx | 日韩特黄一级欧美毛片特黄 | 国产精品视频不卡 | 国产精品久久久一区二区 | 毛片网站在线观看 | 国产精品久久天天躁 | 99精品一区二区三区 | 国产亚洲一区二区三区在线 | 一区二区三区国产视频 | 久久久高清 | 欧美一区二区三区在线 | 欧美日韩国产一区二区 | 国产91视频一区二区 | 国产精品国色综合久久 | www麻豆| 亚洲免费成人 | 亚洲一二三| 久久女人 | 亚洲欧洲免费视频 | 亚洲精品久久久久一区二区三区 | 国产高清免费视频 | 成人小视频在线观看 | 精品1区 | 久久久久久久一区二区三区 | 日本成人在线视频网站 | 天天操综合网 | 中文字幕精品一区二区三区精品 | 欧美xxxx色视频在线观看免费 | 手机在线观看av | 999这里只有精品 | 一级片av | 一级a性色生活片久久毛片明星 | 亚洲色图p| 亚洲成熟少妇视频在线观看 | 在线国产一区二区 | 久久99精品国产99久久6男男 | 日韩高清国产一区在线 | 欧美一区久久 | 成人不卡在线 | 91影院| 97碰碰碰| 五月网婷婷 | 黄色大片网站在线观看 | 国产亚洲精品v | 日韩精品www| 日韩在线不卡一区 | 国产精品99精品久久免费 | 国产视频一视频二 | 一区在线观看 | 日韩国产欧美 | 日韩欧美国产精品综合嫩v 久久久久久国产精品高清 国产目拍亚洲精品99久久精品 | 国产一区二区在线免费 | 欧美精品免费在线观看 | 国产成人福利视频 | 国产精品久久久久久 | 中文字幕一区在线观看视频 | 久久精品91 | 国产一区二区三区在线免费观看 | 国产精品久久 | 婷婷五月在线视频 | 国产乱码精品一区二区三区忘忧草 | 欧美a区 | 国产精品久久久久久久久久久久久 | 97视频精品 | 欧美日韩亚洲综合 | 国产亚洲一区二区在线 | 国产一区二区三区四区 | 欧美寡妇偷汉性猛交 | 久草在线资源福利站 | 91视频三区 | 亚洲视频久久久 | 久久av黄色 | 天天干夜操 | av三级在线观看 | 国产精品久久久久影院色老大 | 成人日韩 | 精品久久久久久久 | 国产精品毛片一区视频播 | 久久精品色欧美aⅴ一区二区 | a黄视频| 香蕉视频黄色 | 日本久久久久久 | 日本丶国产丶欧美色综合 | 天天夜操| 欧美一级在线播放 | 久久久精品一区二区 | 成人免费在线观看网址 | 黄色a视频 | 色婷婷av一区二区三区软件 | 久久精品99 | 在线亚洲一区 | 午夜免费视频 | 精品国产乱码一区二区三区 | 久久国产成人 | 国产精品一区二 | 成人在线视频网站 | 久久草视频 | 在线看国产 | 亚洲精品一区二区在线观看 | 视频一区二区国产 | 国产日韩欧美一区 | 91丨九色丨国产 | 欧美a网站 | 精品乱子伦一区二区三区 | 欧美激情网 | 国产精品色一区二区三区 | 成人国产一区 | 久久国产一区二区 | 亚洲精品91 | 九九热这里只有 | 成人免费毛片高清视频 | 日韩一区二区三区在线看 | 午夜精品久久久久久久白皮肤 | 狠狠艹| 波多野结衣福利电影 | 亚洲欧美日韩另类精品一区二区三区 | 成人一区二区三区在线 | 成年网站视频 | 中文字幕成人免费视频 | 国产美女精品 | 精品视频一区二区 | 国产传媒在线观看 | 超碰人人艹 | 热久久这里只有精品 | 成人午夜影院 | 久久综合伊人77777 | 欧美激情精品久久久久 | 欧美日韩精品久久 | av在线大全 | 一本大道综合伊人精品热热 | www.久久久久 | 日本精品一区二 | 国产精品成人久久久久 | 国产日产精品一区二区三区四区 | 中文字幕久久综合 | www.久久99 | 九色av | 国产精品第一国产精品 | 日本超碰 | 我要看a级毛片 | 亚洲成人精品久久久 | 欧美极品在线 | 国产精品国产三级国产aⅴ原创 | 日韩精品免费视频 | 懂色中文一区二区在线播放 | 国产精品久久久久久久久久久久久 | 一区二区毛片 | 天天夜夜操 | 国产精品欧美一区二区三区不卡 | 黄色一级视屏 | 五月激情综合网 | 欧美黑人一区 | 97色在线观看免费视频 | 黄片毛片在线观看 | 国产精品久久九九 | 亚洲欧美国产精品专区久久 | 99久久久国产精品 | 久久久久久午夜 | www.夜夜操.com | 亚洲精品在线免费观看视频 | 日韩av一区二区三区四区 | av官网在线 | 久久综合久久综合久久 | 亚洲视频一区二区三区 | 国产视频二 | 欧美一级在线 | 不卡一区二区三区四区 | 日韩精品一区二区三区在线 | 激情视频在线观看 | 色性视频 | 龙珠z国语291集普通话 | 久久性| 亚洲免费视频网站 | 澳门av| 成人午夜视频在线观看 | 日韩午夜在线 | 国产综合久久久 | 欧美激情国产日韩精品一区18 | 亚洲成人动漫在线观看 | 北条麻妃一区二区三区中文字幕 | 久久久久亚洲一区二区三区 | a∨色狠狠一区二区三区 | 午夜电影网址 | 欧美日韩六区 | 日韩在线小视频 | 免费国产黄色大片 | 欧美午夜精品久久久 | 一级高清 | 日韩中文字幕视频 | 欧美黑人一级爽快片淫片高清 | 日日操视频 | 午夜激情视频免费 | 好姑娘影视在线观看高清 | 激情欧美一区二区三区中文字幕 | 国产超碰人人模人人爽人人添 | 亚洲精品在线免费 | 一级全黄少妇性色生活片免费 | 免费国产网站 | 国产欧美综合一区二区三区 | www.色在线| 亚洲精品日本 | 久久久精 | 国产精品久久久久久久久免费桃花 | 狠狠爱www人成狠狠爱综合网 | 亚洲综合精品在线 | 国产色视频在线观看免费 | 欧美大片网站 | 国产美女精品人人做人人爽 | 日日精品 | 国产三级在线免费观看 | 欧美精品成人一区二区三区四区 | 国产欧美一区二区精品久久 | 成人一区二区在线 | 亚洲毛片网站 | 干狠狠 | 婷婷久久综合 | 久色 | 国产九色视频 | 国产精品国产a级 | 国产精品成av人在线视午夜片 | 国内精品视频一区二区三区八戒 | 国产情侣免费视频 | 中文字幕免费在线观看 | 91精品久久久久久久久久 | 午夜在线电影 | 国产一级片 | 成人中文字幕在线 | 中文字幕亚洲一区二区三区 | 日韩在线观看中文字幕 | 中文字幕在线观看精品视频 | 性国产xxxx乳高跟 | 美女视频黄的免费 | 国产精品久久一区 | 亚洲国产精品久久久久婷婷老年 | 天天色天天射天天操 | 精品久久久久久久久久 | 国产精品久久在线观看 | 人人插人人干 | 午夜久久久久 | 久久国产精品久久久久久电车 | 国产一区二区免费 | a级在线 | 三级在线视频 | 欧美一区二区免费 | 欧美一级三级 | 国产一区二区av | 超碰av在线 | 超碰天堂 | 久久99国产精品免费网站 | 国产视频一区二区三区四区 | 一区二区三区亚洲视频 | 手机久久看片 | 色婷婷综合久色 | 久久精品免费 | 国产超碰人人模人人爽人人添 | 成人免费黄色片 | 欧美日韩激情在线 | 澳门av| 日韩精品无码一区二区三区 |