引用 | 編輯
香吉士
2009-09-10 21:40 |
樓主
|
||
x0
【插件資訊】插件名稱:密碼鎖文 適用版本:7.0 語言編碼:UTF-8 插件作者:小修改:香吉士 版權所屬:小修改:香吉士 原帖連結:http://www.alan888.com/Discuz/thread-170013-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 複製程式 請輸入你的提示信息: 請輸入你設置的密碼: 圖標:我自己做的,不喜歡可以自己做不要用我的 x1
|