[問題] 如何讓初登記者答對問題選項後才容許註冊登記?

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
china2000
星球公民
星球公民
文章: 194
註冊時間: 2003-10-24 23:00
來自: 傷講

[問題] 如何讓初登記者答對問題選項後才容許註冊登記?

文章 china2000 »

使用版本:phpBB 2.0.5,採用BMan1Blue為預設風格,Linux為操作系統,MySQL
4.0.15 ,租用外國的主機空間。

狀況描述:今天有空時安裝了這個東西【註冊時,15秒後才能按下我同意】發覺非常實用,最少所有初登記的人都會看一看版規!晚上突然忽發奇想!不知能否這樣做?

就是我想那些初登記者都能記著一些最基本的規則!構思的方向就是現在當初登記者等候了15秒(*等候並不代表真的有看版規*)後便可以登記!但新法就是初登記者等候了15秒後不能直接跳至登記的版面去!而是按下任何鍵後跳至另一個必答問題版面(Q&A)去!這個必答問題版面會列出三至四個選項,問題內容都是和版規有關的!當中只有一個選項是真確的,答對了便能跳至登記的版面去!答錯了便跳回到主版面去或是先跳出一段信息(Warning),後按下任何鍵後再重新回到等候了15秒的版面重來!

由於我的論壇每天都有五十到八十人登記,為了掃除一些網上盲流才迫不得已想出此法!

有誰可以幫忙呢?
最後由 china2000 於 2005-04-10 15:37 編輯,總共編輯了 1 次。
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

很好!在註冊的畫面加上即可!可以突然問一下某些版規是第幾條!
china2000
星球公民
星球公民
文章: 194
註冊時間: 2003-10-24 23:00
來自: 傷講

文章 china2000 »

DL學兄,那該如何弄呢?
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

我也在想辦法,我也十分需要
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

我想到一個方法是用JS
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

在確定的按鈕動手腳
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

好用的地方是真的要「抄」一次,不能奸詐的用複製\r
已更新,請使用下面的新版
最後由 DL 於 2005-04-14 13:36 編輯,總共編輯了 2 次。
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

到語系檔改一下版規,真的有夠抄死人,一見到要抄這麼多字都不想加入了
china2000
星球公民
星球公民
文章: 194
註冊時間: 2003-10-24 23:00
來自: 傷講

文章 china2000 »

DL學兄,謝謝你的方案 :) 也是方法之一!但也有一點不便~ 就是論壇的會員有三份之一是來自外國的華人,很多都不懂得輸入法或沒有手寫板或能看得懂中文但不懂得寫,可是我的論壇又全以中文為主!我的第一個方案是比較合適的,能否改成用選項這樣子呢?
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

我改成輸入ABCD的

代碼: 選擇全部

<p><table width="100%" cellspacing="2" cellpadding="2" border="0" align="center"> 
   <tr> 
      <td align="left"><span class="nav"><a class="nav" href="{U_INDEX}">{L_INDEX}</a></span></td> 
   </tr> 
</table> 

<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0"> 
   <tr> 
      <th class="thHead" height="25" valign="middle"><span class="tableTitle">{SITENAME} - {REGISTRATION}</span></th> 
   </tr> 
   <tr> 
      <td class="row1" align="center"><table width="80%" cellspacing="2" cellpadding="2" border="0" align="center"> 
         <tr> 
            <td><p align="center"> 
            
{AGREEMENT} 
            
<form action="register.cgi" method="post" name="agree"> 
            <span class="genmed"><div align="center"> 
                    
            </div>
              </span> 
         <tr> 
            <td>
              <p align="center">請在下方輸入答案(只需輸入ABCD)
              <p><input type="hidden" name="S1" size="20" value="ABCD">1.           
              請輸入A<p>2.請輸入B<p>3.請輸入C<p>4.請輸入D           
            <p><textarea rows="5" name="S2" cols="69" onclick="clearpaste()"></textarea></p>           
            <span class="genmed"><div align="center">           
<input onclick=ok(); type="button" value="按下將立刻開始" name="agreeb" class="liteoption">                                           
<input onclick=history.back(-1) type="reset" value="取消" name="agreeten" class="liteoption">                                         
</form>                                         
 <p>           
            </table>          
</body>                              
                              
<script>                                        
function clearpaste() {                                        
setTimeout("window.clipboardData.setData('text','')",1);                                        
}                                        
function ok()                                        
{                                        
if (document.agree.S1.value==document.agree.S2.value){          
alert('輸入正確!');                                        
window.location="{U_AGREE_OVER13}";                                        
}                                        
else                                        
{                                        
alert('答錯了,重新再輸入一次!');                                                                            
document.agree.S2.value=""                 
document.agree.S2.disabled=false;             
document.agree.agreeb.disabled=true;                                                       
document.agree.agreeten.disabled=true;                 
\nfor(i=1;i<=secs;i++)                                        
{                                        
window.setTimeout("update(" + i + ")", i * 1000);                                        
}                                       
}                                        
}                                        
var secs = 5;                    
document.agree.agreeb.disabled=true;                                                       
document.agree.agreeten.disabled=true;                        
                                                    
for(i=1;i<=secs;i++)                                        
{                                        
window.setTimeout("update(" + i + ")", i * 1000);                                        
}                                               
                                      
function update(num) {                                        
if(num == secs) {                                        
document.agree.agreeb.value ="時間到,停止輸入,請按此按鈕繼續!";                     
document.agree.S2.disabled=true;                      
document.agree.agreeb.disabled=false;                                         
document.agree.agreeten.disabled=false;                                        
}                                        
else {                 
if ((secs-num)!==60&&(secs-num)!==120&&(secs-num)!==180&&(secs-num)!==240&&(secs-num)!==300)        
{                               
printnr = secs-num;         
document.agree.agreeb.value = "尚餘" + printnr +" 秒";                                        
}        
else        
{        
printnr = (secs-num)/60;        
document.agree.agreeb.value = "尚餘" + printnr +" 分鐘";        
}                                       
}                                        
}                                        
</script>
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

我這次設定成5秒後便一定要把送出,輸入欄是鎖上,無法再輸入!
以上只供測試用,請把var secs = 5;改為你要的時間。
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

如不想會員看著版規回答:
===修改===
var secs = 5;改為回答時間+看版規時間

===找到===
{AGREEMENT}

<form action="register.cgi" method="post" name="agree">

===取代為===
<form action="register.cgi" method="post" name="agree">
<textarea rows="5" name="answer" cols="69" readonly>{AGREEMENT}</textarea>

===找到===
}
}
</script>

===之前加上===
if ((secs-num)>15)
{
document.agree.S2.disabled=true;
}
else
{
document.agree.answer.value="現在開始回答了!";
document.agree.S2.disabled=false;
}

===修改===
if ((secs-num)>15) 改為回答時間
DL
竹貓忠實會員
竹貓忠實會員
文章: 717
註冊時間: 2005-03-05 15:29

文章 DL »

補續....剛剛漏了一句:

===找到===
alert('答錯了,重新再輸入一次!');
document.agree.S2.value=""
document.agree.S2.disabled=false;
document.agree.agreeb.disabled=true;
document.agree.agreeten.disabled=true;

===後面加上===
document.agree.answer.value="{AGREEMENT}";

===EoM去===
測試能否使用
主題已鎖定

回到「外掛問題討論」