[問題] 如何讓初登記者答對問題選項後才容許註冊登記?
版主: 版主管理群
[問題] 如何讓初登記者答對問題選項後才容許註冊登記?
使用版本:phpBB 2.0.5,採用BMan1Blue為預設風格,Linux為操作系統,MySQL
4.0.15 ,租用外國的主機空間。
狀況描述:今天有空時安裝了這個東西【註冊時,15秒後才能按下我同意】發覺非常實用,最少所有初登記的人都會看一看版規!晚上突然忽發奇想!不知能否這樣做?
就是我想那些初登記者都能記著一些最基本的規則!構思的方向就是現在當初登記者等候了15秒(*等候並不代表真的有看版規*)後便可以登記!但新法就是初登記者等候了15秒後不能直接跳至登記的版面去!而是按下任何鍵後跳至另一個必答問題版面(Q&A)去!這個必答問題版面會列出三至四個選項,問題內容都是和版規有關的!當中只有一個選項是真確的,答對了便能跳至登記的版面去!答錯了便跳回到主版面去或是先跳出一段信息(Warning),後按下任何鍵後再重新回到等候了15秒的版面重來!
由於我的論壇每天都有五十到八十人登記,為了掃除一些網上盲流才迫不得已想出此法!
有誰可以幫忙呢?
4.0.15 ,租用外國的主機空間。
狀況描述:今天有空時安裝了這個東西【註冊時,15秒後才能按下我同意】發覺非常實用,最少所有初登記的人都會看一看版規!晚上突然忽發奇想!不知能否這樣做?
就是我想那些初登記者都能記著一些最基本的規則!構思的方向就是現在當初登記者等候了15秒(*等候並不代表真的有看版規*)後便可以登記!但新法就是初登記者等候了15秒後不能直接跳至登記的版面去!而是按下任何鍵後跳至另一個必答問題版面(Q&A)去!這個必答問題版面會列出三至四個選項,問題內容都是和版規有關的!當中只有一個選項是真確的,答對了便能跳至登記的版面去!答錯了便跳回到主版面去或是先跳出一段信息(Warning),後按下任何鍵後再重新回到等候了15秒的版面重來!
由於我的論壇每天都有五十到八十人登記,為了掃除一些網上盲流才迫不得已想出此法!
有誰可以幫忙呢?
最後由 china2000 於 2005-04-10 15:37 編輯,總共編輯了 1 次。
我改成輸入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>如不想會員看著版規回答:
===修改===
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) 改為回答時間
===修改===
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) 改為回答時間

