2012-05-29 37 views
2

我是新來使用PHP,但在這裏我的問題:PHP的MySQL - 嘗試添加時限offten用戶如何上傳

我工作的一個網站,用戶可以發佈的東西在服務器上。 我正在嘗試爲用戶發帖的頻率添加5分鐘的限制。每次用戶帖子它更新自己的行場與CURRENT_TIMESTAMP()數據庫

我想什麼做的是什麼,檢查他們多久以前發佈,如果少於5分鐘前它不允許他們發佈。

我想,這會是這個樣子:

<?php 

$query = "SELECT * FROM Users_table WHERE Username = '$username'"; 
$result = mysql_query($query); 

if (($result['last_post']-now())<=5minutes) { 

echo "Please wait 5 minutes before you can post again."; 

} else { 

code to let user post 

} 

?> 

我遇到的問題是我不知道時候怎麼工作得很好,不知道5分鐘多久會是什麼樣子。

任何幫助,非常感謝。

+0

如果你喜歡這裏的任何特定答案,請在答案旁邊勾上勾號標記爲已接受,謝謝! –

回答

6

而不是使用一個數據庫,你可以使用會話太:

session_start(); 
if (isset($_SESSION['last_post']) && $_SESSION['last_post'] + 300 >= time()) { 
    echo "sorry, please wait for 5 minutes before next post"; 
} else { 
    // do your post here 
    $_SESSION['last_post'] = time(); 
} 

這將添加跟蹤此會話中的最後一個職位的會話變量;每次發佈該值都會得到更新。

當最後一次+5分鐘在將來時,自上次發帖以來還沒有過5分鐘。

1

您可以檢查直接在SQL,然後使用PHP,只是爲了驗證,如果查詢返回的任何東西:

$query = " 
    SELECT * FROM Users_table 
    WHERE Username = '$username' 
    AND DATE_ADD(last_post, INTERVAL 5 MINUTE) > NOW() 
"; 
$result = mysql_query($query); 
if(mysql_num_rows($result) > 0) { 
    echo "Please wait 5 minutes before you can post again."; 
} else { 
    //code to let user post 
} 
+0

哇。這不是我想象的,但更好。謝謝! 感謝所有其他人的迴應。 –

+0

請考慮使用Jack添加的解決方案,我相信它更優雅,因爲它不涉及任何對數據庫的調用。 – bfavaretto

0

SELECT * FROM Users_table WHERE Username = ? AND DATE_ADD(last_post, INTERVAL 5 MINUTE) > NOW()

然後檢查結果爲空。

相關問題