2011-03-31 42 views
0

如何強制用戶在提交另一封電子郵件之前等待60秒?可以使用sessiontime()。任何代碼示例都是受歡迎的論壇提交60秒時限

謝謝。

回答

0

使用會話狀態(不知道如何在PHP中完成,但這不是PHP問題)或cookie來存儲上次提交時間。這是一個簡單的比較,然後採取行動。

+0

對不起,但這並沒有幫助LOL – EMC 2011-03-31 11:52:19

+1

@EMC:這沒有幫助,有什麼好笑的呢?我猜想你正在尋找一段完整的代碼,而不僅僅是解釋如何去做。這不是火箭科學。 – Lazarus 2011-03-31 11:54:34

+0

確切的:-)我正在尋找代碼示例。 – EMC 2011-03-31 12:02:12

1

如果你把你的表單的發送按鈕的onclick =「禁用(事件)」,然後提供這個腳本片段:

function disable(event) = { 
    event.currentTarget.setAttribute("style", "display:none"); 
    window.setTimeout(function() { 
    event.currentTarget.setAttribute("style", "display:inline"); 
    }, 1000 * 60); 
} 

謹防然而,這僅實現在客戶端(瀏覽器)側的檢查。很容易被惡意用戶黑掉。您需要在服務器端實施類似的檢查。

+0

這是非常好的和有用的,但它的JavaScript。謝謝,但我需要PHP :) – EMC 2011-03-31 11:55:38

+1

您的問題被標記爲'javascript' – 2011-03-31 11:56:05

+1

哦,對不起。我以爲我會推薦PHP :(其實我是這麼做的,它被編輯的東西是什麼? – EMC 2011-03-31 11:57:40

2

Cookies可以使用特殊附件進行編輯,所以我更喜歡您使用會話microtime。類似的東西:

$delay = 60000000; // Set delay [60 seconds] 

// ....... 

if(microtime() >= $_SESSION['lastsent'] + $delay) 
{ 
    send(); 
    $_SESSION['lastsent'] = microtime(); 
} 
else 
{ 
    echo 'Please wait 60 seconds'; 
} 

代碼可能是不好的,因爲它已寫在這裏。

+0

是的,類似這樣的:-)你能舉出更完整的例子嗎?它呢?例如與回聲一樣。請等待60秒再次發送。謝謝。 – EMC 2011-03-31 12:13:21

+0

完美,謝謝Robik。將嘗試它,讓你知道,如果它爲我工作=) – EMC 2011-03-31 12:18:07

+0

@EMC這是簡單的其他sttement ....但如果你不能... [0123]修改] – Robik 2011-03-31 12:18:20