2014-02-18 20 views
2

任何人都可以提出一個很好的PHP函數,腳本或方法來防止用戶發送重複郵件嗎?阻止用戶使用PHP發送重複郵件

這裏是場景。我擁有一個社區網站。會員可以互相發送消息。然後一些來自非洲的垃圾郵件發送者通過發送複製粘貼消息聯繫了所我怎樣才能防止這一點?

我見過一些網站實現類似的功能。當用戶發送3條消息時,網站檢測到這3條消息是重複的/類似的。它警告用戶不要發垃圾郵件。

有誰知道我可以使用的PHP函數或腳本?先謝謝你。

回答

3

首先要做的是定義規則。例如,如果您認爲您準確發送三條消息,可以非常容易地繞過系統。我用了這樣的事情

的一個建議 - 這是功能http://php.net/similar_text

$var_1 = 'PHP IS GREAT'; 
$var_2 = 'WITH MYSQL'; 

similar_text($var_1, $var_2, $percent); 

echo $percent; 
// 27.272727272727 

similar_text($var_2, $var_1, $percent); 

echo $percent; 
// 18.181818181818 

然後檢查用戶的歷史,如果最後3個消息有80%或更多類似您阻止用戶。

+1

+1這是非常好的。儘管如此,我仍然很想知道性能影響:尤其是在較長的文本字符串和用戶基礎增長時。 – MonkeyZeus

+0

謝謝你。它似乎工作順利。這是我做的。我加密了用戶發送並存儲在cookie中的最後一條消息。當用戶發送消息時,它將與最後一個進行比較。如果相似度的百分比高於60.它將記錄加密cookie中的實例數量。之後3個相同的消息。用戶將被禁止一個小時左右。我相信它不會影響我網站的性能,因爲它不需要額外的查詢。我認爲這裏沒有安全問題,因爲cookie僅僅用於比較。你怎麼看? – Jenny

+0

是60%,足以考慮類似的字符串?或者我應該把它提高到70%。 – Jenny