㈠ 求助,如何實現thinkphp官網的評論,回復 消息功能
只說說邏輯吧
只需要在設計數據表的時候比原來多增加兩個欄位就行,姑且叫 aid 和cid
aid用於記錄是哪個文章下的評論,cid用於記錄是哪條評論下的評論.
即 aid = 文章的ID cid = 被評論的這條評論的ID
當別人點擊評論時 則只需要記錄文章的ID 即aid 此時 cid = 0;
當別人在某條評論下回復時,則記錄文章id 和這條評論的id 即cid = 等於此時評論的id
在顯示的時候
//查詢文章已TP5為例子
$pinglun=db::table('pinglun')->where('aid',id)->where('cid',0)->select();//查詢一條文章的評論
foreach($pinglun1as$k=>$v){
$data[$k]=$v['neirong']//這里為評論的內容
$pinglun2=db::table('pinglun2')->where('cid',$v['id'])->select();
foreach($pinglun2as$kk=>$vv){
$data['huifu']=$vv['neirong']
}
}
純手工 ,希望對你有幫助
㈡ php學出來能做什麼
PHP學出來後,可以從事以下方面的工作和應用:
製作網站:
數據採集:
輔助開發:
開發框架和軟體:
可從事的崗位: web前端工程師:雖然PHP主要是後端技術,但了解前端技術對於全棧開發非常有幫助。 PHP後端開發:專注於PHP後端邏輯的開發和維護。 PHP技術開發工程師:負責PHP技術的應用和開發,包括框架搭建、模塊開發等。 PHP程序員:編寫PHP代碼,實現業務邏輯和功能需求。 PHP架構師:負責PHP應用的架構設計和技術選型,確保系統的穩定性和可擴展性。
綜上所述,PHP學出來後有著廣泛的應用領域和就業前景,可以根據個人興趣和職業規劃選擇合適的崗位和方向。
㈢ 【新手求助】PHP點贊功能,急!!!
html:
<head>
<scriptsrc="common/js/jquery.js"type="text/javascript"></script>
<scriptlanguage="JavaScript"type="text/javascript">
jQuery(function($){
//這兩個是滑鼠放上去的效果
$(".zhan").hover(function(){
$(this).children("b").toggle();
});
$(".cai").hover(function(){
$(this).children("b").toggle();
});
});
</script>
<scripttype="text/javascript">
<!--這兩個點擊事件可以改進的,因為事件問題,所以就弄了兩個點擊事件
$(document).ready(function(e){
//點贊(給力)
$('.zhan').click(function(){
varzhan=$(this);
varleft=parseInt($(this).offset().left)+10,top=parseInt($(this).offset().top)-10,obj=$(this);
$(this).append('<divid="zhan"><b>+1</b></div>');
$('#zhan').css({'position':'absolute','z-index':'1','color':'#C30','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){
$(this).fadeIn('fast').remove();
varNum=parseInt(obj.find('span').text());
Num++;
obj.find('span').text(Num);
});
$.ajax({
url:"ajax.php?action=zan",
type:"post",
data:"answer_id="+$(this).attr("alt"),
success:function(datas){
zhan.unbind('click');
zhan.parent().parent().siblings().children().children().unbind('click');
zhan.parent().parent().siblings().children().children().attr("class","evaluate-inner");
zhan.attr("class","evaluate-inner");
}
});
});
//踩(不給力)
$('.cai').click(function(){
varcai=$(this);
varleft=parseInt($(this).offset().left)+10,top=parseInt($(this).offset().top)-10,obj=$(this);
$(this).append('<divid="cai"><b>-1</b></div>');
$('#cai').css({'position':'absolute','z-index':'1','color':'#7DAAD5','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){
$(this).fadeIn('fast').remove();
varNum=parseInt(obj.find('span').text());
Num--;
obj.find('span').text(Num);
});
$.ajax({
url:"ajax.php?action=cai",
type:"post",
data:"answer_id="+$(this).attr("alt"),
success:function(datas){
cai.unbind('click');
cai.parent().parent().siblings().children().children().unbind('click');
cai.parent().parent().siblings().children().children().attr("class","evaluate-inner");
cai.attr("class","evaluate-inner");
}
});
});
});
//-->
</script>
</head>
<body>
<!--給力開始-->
<spandata-evaluate="0"id="evaluate-1908165795"class="evaluate"alog-action="qb-zan-btn"><spanclass="evaluate-outer">
<!-----判斷對應的回答的id是否在自己創建的存儲贊和踩數據的php文件,如果贊或者踩存在一個的話就不能再單擊---->
<spanclass="evaluate-inner{if$answer_datas.ans_id|in_array:$zan_listor$answer_datas.ans_id|in_array:$cai_list/}{else/}zhan{/if/}"alt="{$answer_datas.ans_id/}"><bstyle="display:none"class="evaluate-tipevaluate-num-fixed">給力</b><bclass="evaluate-numevaluate-num-fixed"><span>{$answer_datas.goods/}</span></b></span></span></span>
<!--不給力開始-->
<spandata-evaluate="0"id="evaluate-bad-1908165795"class="evaluateevaluate-bad"alog-action="qb-evaluate-outer"><spanclass="evaluate-outer"><spanclass="evaluate-inner{if$answer_datas.ans_id|in_array:$zan_listor$answer_datas.ans_id|in_array:$cai_list/}{else/}cai{/if/}"alt="{$answer_datas.ans_id/}"><bstyle="display:none;"class="evaluate-tipevaluate-num-fixed">不給力</b><bclass="evaluate-numevaluate-num-fixed"style="display:inline-block;"><span>{$answer_datas.bads/}</span></b></span></span></span>
</div>
</div>
<!--評論回答開始-->
</body>
</html>
php
<?php
$action=$_GET['action'];//獲取get方式傳過來的action
require_once("array/ovovsys_zan.php");
switch($action){
case'detail':
/*****贊開始****/
$zan_list=json_decode(str_replace("'",'"',$zan_json),true);
$zan_lists=array();
foreach($zan_listas$key=>$value){
if($value['uid']==$uid){
$zan_lists[]=$value['answer_id'];
}
}
$smarty->assign('zan_list',$zan_lists);//查詢當前登錄的會員的uid對應的點贊的回答
/*****贊結束****/
/*****踩開始****/
$cai_list=json_decode(str_replace("'",'"',$cai_json),true);
$cai_lists=array();
foreach($cai_listas$key=>$value){
if($value['uid']==$uid){
$cai_lists[]=$value['answer_id'];
}
}
$smarty->assign('cai_list',$cai_lists);//查詢當前登錄的會員的uid對應的踩的回答
/*****踩結束****/
$smarty->display('自己的靜態頁面');
exit();
break;
}
?>
ajax
<?php
require_once("array/ovovsys_zan.php");//這里引用array文件夾中的數組文件
$action=trim($_GET['action']);
if(empty($action)){
echo'<fontcolor=red>參數錯誤!</font>';exit();
}
switch($action){
case'zan'://點贊(給力)
//$zan_json是數組文件中設置的數組變數,存的是json數據----1
$zan_array=json_decode(str_replace("'",'"',$zan_json),true);
//獲取當前的會員的uid-----2
$user_answer['uid']=$uid;
//獲取對應的贊的回答的id----2
$user_answer['answer_id']=$_POST['answer_id'];
//將會員的uid和答案的id一塊的數組放到指定的數組中----3
$zan_array[]=$user_answer;
$config_path='shuzu/ovovsys_zan.php';
if(!file_exists($config_path)){
$Base->ErrorMsg('文件錯誤:shuzu/ovovsys_zan.php不存在!');exit();
}
//將指定的數組轉換成json數據,並且將雙引號轉換成單引號,不然放到數組文件中後會出錯----4
$zan_new_json=str_replace('"',"'",json_encode($zan_array));
$fp=@fopen($config_path,'r+');
if(!$content=@fread($fp,filesize($config_path))){
$Base->ErrorMsg('無法讀取shuzu/ovovsys_zan.php文件!');exit();
}
//執行替換,將數組文件中對應的json數據----5
$content=str_replace("$zan_json="{$zan_json}"","$zan_json="{$zan_new_json}"",$content);
$fp=@fopen($config_path,'w+');
@fwrite($fp,$content);
//修改對應的數據表中的數據----5
$Db->ThisQuery("update`".$db_prefix."ask_answers`set`goods`=`goods`+1where`ans_id`=".$user_answer['answer_id']."");
exit();
break;
case'cai'://踩(不給力)
$cai_array=json_decode(str_replace("'",'"',$cai_json),true);
$user_answer['uid']=$uid;
$user_answer['answer_id']=$_POST['answer_id'];
$cai_array[]=$user_answer;
$config_path='shuzu/ovovsys_zan.php';
if(!file_exists($config_path)){
$Base->ErrorMsg('文件錯誤:shuzu/ovovsys_zan.php不存在!');exit();
}
$cai_new_json=str_replace('"',"'",json_encode($cai_array));
$fp=@fopen($config_path,'r+');
if(!$content=@fread($fp,filesize($config_path))){
$Base->ErrorMsg('無法讀取shuzu/ovovsys_zan.php文件!');exit();
}
$content=str_replace("$cai_json="{$cai_json}"","$cai_json="{$cai_new_json}"",$content);
$fp=@fopen($config_path,'w+');
@fwrite($fp,$content);
$Db->ThisQuery("update`".$db_prefix."ask_answers`set`bads`=`bads`-1where`ans_id`=".$user_answer['answer_id']."");
exit();
break;
}
?>
對應的數據文件(因為創建資料庫時沒有創建踩和贊的再斷,所以這里就用php文件存變數的方式保存了一下答案對應的贊和踩的數據,其中包含用戶的id和答案的id):
<?php
$zan_json="";
$cai_json="";
?>
你沒看錯,就是兩個變數
㈣ FancyCaptcha使用方法
要使用FancyCaptcha插件,首先,請確保將插件文件上傳到伺服器的/usr/plugins/目錄中。登錄到你的網站後台,找到插件管理功能,啟用FancyCaptcha插件。接下來,按照插件提供的設置指南,進行必要的配置,比如驗證碼的樣式、字元類型等。
完成基礎設置後,你需要在模板文件中添加FancyCaptcha。通常,評論功能區域的表單(comments的form標簽)是插入代碼的理想位置。在form標簽之間,找到你認為適合插入驗證碼的地方,插入以下PHP代碼:
這段代碼會顯示動態生成的驗證碼圖片,以增強你的網站評論系統的安全性。確保保存並更新模板後,訪問你的網站,新的驗證碼功能就應該開始生效了。如果遇到任何問題,可以查閱插件的文檔或聯系插件開發者尋求幫助。