[英]Re-directing user if they make more than 5 comments in 1 hour
如果用戶嘗試在1小時內提交5條以上的評論,我將嘗試重定向用戶。
datecommented
是一個時間戳。 我希望重定向發生,如果有6個或更多帶有loginid = '$uid'
注釋在最近一個小時內帶有時間戳。
以下是我到目前為止所擁有的,但是它不起作用。 我如何使它工作?
謝謝,
約翰
$queryuidcount = "select loginid from comment where (HOUR(NOW()) - HOUR(datecommented)) <= 1 AND loginid = '$uid'";
$uidresult = mysql_query($queryuidcount);
if (mysql_num_rows($uidresult) >= 6)
{
session_write_close();
header("Location:http://www.domain.com/directory/file.php");
exit;
}
當您要選擇行數時選擇數據,也不要將HOUR用於您要執行的操作不是一個好主意。 HOUR()只是從時間戳返回小時,並不關心發生的日期。 另外,有了您的解決方案,我可以在10:59發表5條評論,在11:00發表5條評論。
這是您應該用來了解用戶在過去一小時內發布了多少條評論的查詢:
SELECT COUNT(*) as num_comments
FROM comment
WHERE datecommented >= NOW() - INTERVAL 1 HOUR
AND loginid = $uid;
這將返回一個具有一列num_comments的結果集。 然后,您就可以在PHP代碼中進行驗證,並使用標頭重定向,就像已經在做的那樣。
您可以像平時對PHP中的任何查詢一樣獲取行:
// I assume $query contains the query above
$result_set = mysql_query($query) or exit(mysql_error());
$num_comments = mysql_result($result_set, 0); // fetch the first row of the result set
if ($num_comments >= 5) {
// blablabla
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.