廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 20517 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
香吉士 手機
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 創作大師獎 創作大師獎-2 創作大師獎-3
知名人士
級別: 知名人士 該用戶目前不上站
推文 x234 鮮花 x555
分享: 轉寄此文章 Facebook Plurk Twitter 版主評分 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[7.0][分享] 密碼鎖文  (UTF-8)
【插件資訊】

插件名稱:密碼鎖文
適用版本:7.0
語言編碼:UTF-8
插件作者:小修改:香吉士
版權所屬:小修改:香吉士
原帖連結:http://www.alan888.com/Discuz/...-1-11.html###
支持網站:演示:http://allen.ncc.to/viewthread.php?tid=95

【插件說明】

功能說明:
  支持任意密碼及答案.
  支持回答正確後,第二次訪問不必再次驗證.
  支持用戶權限.
  支持普通主題無影響.
  良好的前台顯示.
這功能同樣可以引入到discuz上來.現在讓我們一起來感受一下比較實用的信息密碼吧.

成功圖:





第一步viewthread.php

查找:複製程式
 while($post = $sdb->fetch_array($query)) {


在它的下一行增加:   複製程式
             
 $user = array(); 
                $on = $passstr = $ons = null; 
                if($post['first']==1 && strpos($post['message'],'[pass=')!==false && $on === null){ 
                        preg_match('/\[pass=(.*)\](.*)\[\/pass\]/isU',$post['message'],$passstr); 
                        preg_match('/\[user\](.*)\[\/user\]/isU',$post['message'],$user); 
                        unset($user[0]); 
                        if(isset($user[1])){ 
                                $user = explode(',',$user[1]); 
                        }else { 
                                $user = array(); 
                        } 
                        count($passstr)!==3 && $ons = 1; 
                        //讓遊客永遠為假. 
                        isset($discuz_uid)===false && $ons = 3; 
                        if($ons === null && in_array($discuz_uid,$user)===false && isset($passs)){ 
                                $passs === $passstr[2] && $ons = 2; 
                                if($ons === 2){ 
                                        $user[] =$discuz_uid; 
                                        $user = implode(',',$user); 
                                        $post['message'] = strtr($post['message'],array('[/pass]'=>"[/pass][user]{$user}[/user]")); 
                                        $db->query("UPDATE `{$tablepre}posts` SET `message` = '{$post['message']}' WHERE `pid` = '{$post['pid']}'"); 
                                }else { 
                                        showmessage('你的密碼錯誤,請重新輸入',dreferer()); 
                                } 
                        }elseif (in_array($discuz_uid,$user)===false || $ons === 3) { 
                        $post['htmlon'] = 1; 
                        $post['message'] = '<br /><br /><br /> 
                        <form action="viewthread.php?tid='.$tid.'" enctype="application/x-www-form-urlencoded" method="post"> 
                        <ul style="border:1px solid #FC3; background-color:#F3F9E6;padding:8px;"> 
                        <li style="list-style:none; color:red">信息: '.$passstr[1].'</li> 
                        <li style="list-style:none;"><input name="passs" type="text" value="請輸入密碼" onclick="this.value=\'\';this.onclick=\'\'" /><input type="submit" value="確認密碼" /></li> 
                        <li style="list-style:none;color:#06F; font-size:12px;">提示: 只有輸入用戶所設置的密碼,才可查看用戶的主題內容</li> 
                        </ul></form>'; 
                        } 
                        //最後將部分內容清除: 
                        $post['message'] = preg_replace(array('/\[pass=.*\].*\[\/pass\]/isU','/\[user\].*\[\/user\]/isU'),'',$post['message']); 
                } 




進入後台>>界面>>編輯器設置>>discuz代碼

標籤:
複製程式
pass 
替換內容:
複製程式
[pass=1]{1}[pass][pass=2]{2}[pass] 
例子:
複製程式
自行輸入

解釋:
複製程式
設置密碼
參數個數:
複製程式
2
參數提示語:
複製程式
請輸入你的提示信息: 
請輸入你設置的密碼: 
嵌套次數: 2

圖標:我自己做的,不喜歡可以自己做不要用我的

此文章被評分,最近評分記錄
財富:100 (by aa) | 理由: 活動獎勵..^^



獻花 x1 回到頂端 [樓 主] From:歐洲 | Posted:2009-09-10 21:40 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.026963 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言