基於mysql的論壇(3)_PHP教程
Jul 21, 2016 pm 04:02 PM
#####################
# func.php #########
########## ##########
require("config.inc.php");
####檢查使用者是否存在#####
function is_user_exits($name) {
?????????$name=trim($name);
?????????$name?($name);
?????????$SQL="從使用者選擇名稱WHERE name='$name'";
?????????$result=my fetch_Array($result );
?????????$name=$row[name];
??????????$name=$row[name];
?????????返回$名稱中;
}
#########ex;>p. baord){
?????????$sql="select name from boardinfo where name='$baord'" ;
?????????$row=mysql_fetch_array ($result);
?????????$name=$row[name];
?????????返回$名稱;
}
####添加新用戶Function #####
function adduser( ){
?????????global $name,$sex,$realname,$password,$address,$oicq ,$首頁,$電話,$電子郵件,$qm,$regtime?);
?????????$name=ereg_replace("'","'",$name);
???????????>?????????$ realname=htmlspecialchars($realname);
?????????$address=htmlspecialchars($address);
???????htmlspecialchars($homepage);
?????????$phone= htmlspecialchars($phone);
?????????$email=htmlspecialchars($email);
????????m-d H:i:s");
?????????$sql="插入使用者(姓名、性別、真實(shí)姓名、密碼、地址、oicq、首頁、分?jǐn)?shù)、電話、電子郵件、qm、regtime、slaveboard)值('$name','$sex',' $ realname','$password','$address','$oicq','$homepage','0','$phone','$email','$qm','$regtime','' ) 」;
?????????mysql_query($sql) 或die(mysql_error());
}
####### URL 重新導(dǎo)向2($###
?????????header("Location:$url");
}
######建立版面######
function create_board_table($name,$name,$name) {
function create_board_table($name,$> $name=trim("$name");
?????????$sql="CREATE TABLE $name(id int(11) NOT NULL AUTO_INCRMENT,title varchar(50) NOT NULL,writer varcharULLed NOTtext , size int,writetime varchar(20) NOT NULL ,命中int(4) 預(yù)設(shè)'0',good varchar(1),renum int(4) 預(yù)設(shè)'0',slaveid int(11) 預(yù)設(shè)'0',fromip varchar (15),PRIMARY KEY (id))" ;
?????????mysql_query($sql);
?????????$sql="插入板info(name,chinchinname) ?????????mysql_query($sql);
}
###### 移除版面######
function drop_board_table($name){
?????????mysql_query($sql);
?????????$sql="從boardinfo???>## ###### 修改版面###
function update_board($name,$chinesename) {
????$sql="update boardinfo set name='$name', chinesename='$chinesename'sname' name'name=sname= '$name'";
????mysql_query($sql);
}
####新增文章######
function add_doc($board){
?????????global $title,$name,$cont,$writer,$fromip,$fromip,$fromipqm,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromip,$fromipm) $new_topic_score;
?????????$title=trim($title);
?????????$title=substr($title,0,49);
?????????$size=strlen($cont);
?????????$cont=htmlencode2($cont);
?????????$cont=$cont."
"."--------
".$qm;
?????????$writetime=date("Y-m-d H:i:s");
?????????$fromip=getenv("remote_addr");
?????????$name=htmlspecialchars($name);
?????????$writer=$name;
?????????$sql="插入$board (標(biāo)題,writer,cont,size,writetime,fromip) Value('$title','$name','$cont','$size','$writetime' , '$fromip')";
?????????mysql_query($sql);
?????????add_score($writer,$new_topic_score);
}
###### 回覆文章 ####
function re_doc($board,$slaveid){
?????????global $title,$name,$cont,$wter????global $title,$name,$con,$f fromip ,$writetime,$qm,$re_topic_score;
?????????$title=trim($title);
?????????$title=substr($title,0,49);
?????????$size=strlen($cont);
?????????$cont=htmlencode2($cont);
?????????$cont=$cont."
"."--------
".$qm;
?????????$writetime=date("Y-m-d H:i:s");
?????????$name=htmlspecialchars($name);
?????????$writer=$name;
?????????$fromip=getenv("remote_addr");
?????????$sql="插入$board(標(biāo)題,writer,cont,size,writetime,slaveid,fromip) 值('$title','$writer','$cont','$size','$ writetime','$ writetime','$ write ','$slaveid','$fromip')";
?????????mysql_query($sql);
?????????$sql="update $board set renum=renum 1 where id=$slaveid";
?????????mysql_query($sql);
?????????add_score($writer,$re_topic_score);
}
###### 刪除文章 ####
function del_doc($board,$id){
?????????global $remove_score;
?????????$sql="select * from $board where id=$id";
?????????$sql_result=mysql_query($sql);
?????????$sql_row=mysql_fetch_array($sql_result);
?????????$writer=$sql_row[writer];
?????????remove_score($writer,$remove_score);
?????????$slaveid=$sql_row[slaveid];
?????????$sql="select * from $board where id=$slaveid";
?????????$sql_result=mysql_query($sql);
?????????$sql_row=mysql_fetch_array($sql_result);??????????
?????????if ($sql_row[renum]>0){
?????????????
??????????????mysql_query($sql);
?????????}
?????????$sql="從$board刪除,其中id=$id";
?????????mysql_query($sql);
?????????$sql="從$board中移除,其中Slaveid=$id";
?????????mysql_query($sql);
}
#### 轉(zhuǎn)換html 特殊字元與
#####
函數(shù)htmlencode2($str){
?????????$str?ial?$str);
?????????回傳$str;
}
###### 增加一個(gè)點(diǎn)選####
function add_one_hit($board,$id){ function add_one_hit($board,$id){ function c "update $board set attempts=hits 1 where id= $id";
?????????mysql_query($sql);
}
#unc###user_passfunc#(c#>#); $name,$password){
?????????$name=trim($name);
?????????$name=ereg_replace("'","'",$name);
?????????$name=htmlspecialchars($name) ;
?????????$password=trim($password);
?????????$sql="從名稱='$name'的使用者中選擇密碼>?????????$ sql_row=mysql_fetch_array($sql_result);
?????????if($password>>$sql_row[password]){
??????}
?????????其他{
??????????????$結(jié)果中=1;
??????????????setcookie ("jl_forum[name]",$name);
????????????}
?????????返回$結(jié)果;
}
# ####檢查管理員密碼####
function check_admin_password(){
?????????$sql="select * from user where name='$jl_forum[name]'" ;
?????????$result=1;
????????}
????????其他{
????????????$結(jié)果=0;
?????????>????????????$result=1;
????????}
?????????}
????????{
????????????$結(jié)果=0;
????????}??
???
function change_profile($name ){
?????????global $sex,$realname,$password,$address,$oicq ,$首頁,$電話,$電子郵件,$qm;
??$?$ name=htmlspecialchars($name);
?????????$realname=htmlspecialchars($realname);
????????chars($oicq);
?????????$homepage= htmlspecialchars($homepage);
?????????$phone=htmlspecialchars($phone);
?????????$qm);
?????????$sql="更新使用者設(shè)定sex='$sex',realname='$realname',password='$password',address='$address',oicq='$oicq',homepage='$homepage ',phone='$phone' ,email='$email',qm='$qm' 其中name='$name'";
?????????mysql_query($sql);
}
##### 顯示錯(cuò)誤####
function show_error($id){
?????????redirect2("wrong.php?id=$id");
}
# ### 增加版主####
function add_admin($board,$name){
?????????$name=trim($name);
?' where name='$name'";
?????????mysql_query($sql);
}
###### 刪除版主#####
function del_admin(name){name) ??>?????????$name=trim($name);
?????????$name=htmlspecialchars($name); ?????????mysql_query ($sql);
}
##### 貼子轉(zhuǎn)精華####
function set_good($board,$id){
????????='y' where id=$id";
?????????mysql_query($sql);
}
##### 轉(zhuǎn)出精華###
function set_n. {
?????????$sql="update $board set good='' where id=$id";
?????????#
function expl_qm($name){
????????$name=htmlspecialchars($name);
???????$sql_result=mysql_query ($sql);
?????????$sql_row=mysql_fetch_array($sql_result);
?????????}
##### 管理員#####
function adminok() {
????if ($jl_admin[name]==$admin_name and $jl_admin[password]==$admin_password) { ????else {
????????return 0;
????}
}
#?#($ name=htmlspecialchars($name);
????$sql="update user set score=score $num where name='$name'";
????mysql_query($);
; ### 減少積分####
function remove_score($name,$num) {
????$name=htmlspecialchars($name);
????$sql="update user where name='$name'";
????mysql_query($sql);
}
#### 留言#####
function sendmsg() {
$name,$cont;
????$name=htmlspecialchars($name);
????$fromname=htmlspecialchars($fromname);
???=$cont= "Y-m-d H:i:s");
????$sql="insert into message (name,fromname,cont,writetime) values ('$name','$fromname','$cont','$wt' )";
????mysql_query($sql);
}
#### 刪除留言####
function delmsg($id) {
from$???id=$id";
????mysql_query($sql);
}
### 留言是否屬於這個(gè)人######
function is_this_user($id) { ?="select name from message where id=$id";
????$sql_result=mysql_query($sql);
????$sql_row=mysql_fetch_row($fresult); ????????return 1;
????}
????else { ?) ?>
##########################
# good.php ##########
########################
????require("func.php");
????$sql="select * from boardinfo";
????$sql_result=mysql_query($sql);
?>
????
????
??????

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

mysqldump是用於執(zhí)行MySQL數(shù)據(jù)庫邏輯備份的常用工具,它生成包含CREATE和INSERT語句的SQL文件以重建數(shù)據(jù)庫。 1.它不備份原始文件,而是將數(shù)據(jù)庫結(jié)構(gòu)和內(nèi)容轉(zhuǎn)換為可移植的SQL命令;2.適用於小型數(shù)據(jù)庫或選擇性恢復(fù),不適合TB級數(shù)據(jù)快速恢復(fù);3.常用選項(xiàng)包括--single-transaction、--databases、--all-databases、--routines等;4.恢復(fù)時(shí)使用mysql命令導(dǎo)入,並可關(guān)閉外鍵檢查以提升速度;5.建議定期測試備份、使用壓縮、自動(dòng)化調(diào)

處理MySQL中的NULL值需注意:1.設(shè)計(jì)表時(shí)關(guān)鍵字段設(shè)為NOTNULL,可選字段允許NULL;2.查詢判斷必須用ISNULL或ISNOTNULL,不能用=或!=;3.可用IFNULL或COALESCE函數(shù)替換顯示默認(rèn)值;4.插入或更新時(shí)直接使用NULL值需謹(jǐn)慎,注意數(shù)據(jù)源和ORM框架處理方式。 NULL表示未知值,不等於任何值,包括自身,因此查詢、統(tǒng)計(jì)、連接表時(shí)要特別小心,避免漏數(shù)據(jù)或邏輯錯(cuò)誤。合理使用函數(shù)和約束可以有效減少因NULL帶來的干擾。

GROUPBY用於按字段分組數(shù)據(jù)並執(zhí)行聚合操作,HAVING用於過濾分組後的結(jié)果。例如,使用GROUPBYcustomer_id可計(jì)算每個(gè)客戶的總消費(fèi)金額;配合HAVING可篩選出總消費(fèi)超過1000的客戶。 SELECT後的非聚合字段必須出現(xiàn)在GROUPBY中,HAVING可使用別名或原始表達(dá)式進(jìn)行條件篩選。常見技巧包括統(tǒng)計(jì)每組數(shù)量、多字段分組、結(jié)合多個(gè)條件過濾。

MySQL分頁常用LIMIT和OFFSET實(shí)現(xiàn),但大數(shù)據(jù)量下性能較差。 1.LIMIT控制每頁數(shù)量,OFFSET控制起始位置,語法為LIMITNOFFSETM;2.性能問題源於OFFSET掃描過多記錄並丟棄,導(dǎo)致效率低;3.優(yōu)化建議包括使用游標(biāo)分頁、索引加速、懶加載;4.游標(biāo)分頁通過上一頁最後一條記錄的唯一值定位下一頁起點(diǎn),避免OFFSET,適合“下一頁”操作,不適合隨機(jī)跳轉(zhuǎn)。

要查看MySQL數(shù)據(jù)庫和表的大小,可直接查詢information_schema或使用命令行工具。 1.查看整個(gè)數(shù)據(jù)庫大小:執(zhí)行SQL語句SELECTtable_schemaAS'Database',SUM(data_length index_length)/1024/1024AS'Size(MB)'FROMinformation_schema.tablesGROUPBYtable_schema;可獲取所有數(shù)據(jù)庫的總大小,也可加WHERE條件限定具體數(shù)據(jù)庫;2.查看單個(gè)表大小:通過SELECTta

要設(shè)置MySQL的異步主從復(fù)制,請按以下步驟操作:1.準(zhǔn)備主服務(wù)器,啟用二進(jìn)制日誌並設(shè)置唯一server-id,創(chuàng)建複製用戶並記錄當(dāng)前日誌位置;2.使用mysqldump備份主庫數(shù)據(jù)並導(dǎo)入到從服務(wù)器;3.配置從服務(wù)器的server-id和relay-log,使用CHANGEMASTER命令連接主庫並啟動(dòng)複製線程;4.檢查常見問題,如網(wǎng)絡(luò)、權(quán)限、數(shù)據(jù)一致性及自增沖突,並監(jiān)控複製延遲。按照上述步驟操作可確保配置正確完成。

MySQL支持事務(wù)處理,使用InnoDB存儲(chǔ)引擎可確保數(shù)據(jù)一致性和完整性。 1.事務(wù)是一組SQL操作,要么全部成功,要么全部失敗回滾;2.ACID屬性包括原子性、一致性、隔離性和持久性;3.手動(dòng)控制事務(wù)的語句為STARTTRANSACTION、COMMIT和ROLLBACK;4.四種隔離級別包括讀未提交、讀已提交、可重複讀和串行化;5.正確使用事務(wù)需注意避免長時(shí)間運(yùn)行、關(guān)閉自動(dòng)提交、合理處理鎖及異常。通過這些機(jī)制,MySQL可實(shí)現(xiàn)高可靠與並發(fā)控制。

字符集和排序規(guī)則問題常見於跨平臺(tái)遷移或多人開發(fā)時(shí),導(dǎo)致亂碼或查詢不一致。核心解決方法有三:一要檢查並統(tǒng)一數(shù)據(jù)庫、表、字段的字符集為utf8mb4,通過SHOWCREATEDATABASE/TABLE查看,用ALTER語句修改;二要在客戶端連接時(shí)指定utf8mb4字符集,在連接參數(shù)或執(zhí)行SETNAMES中設(shè)置;三要合理選擇排序規(guī)則,推薦使用utf8mb4_unicode_ci以確保比較和排序準(zhǔn)確性,並在建庫建表時(shí)指定或通過ALTER修改。
