簡體   English   中英

重定向用戶(如果他們在1小時內發表了5條以上的評論)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM