2012-08-24 43 views
-4

這裏是添加到數據庫的代碼:如何僅允許每個用戶發佈一次POST?

<?php 
/*Config*/ 
+0

您還可以添加您編寫的用於添加到數據庫的代碼嗎? – andrewsi

+1

聽起來像是應該可以使用[PHP會話變量](http://www.php.net/manual/en/book.session.php)輕鬆完成的事情。只需使用會話並設置一個會話變量(稱爲'posted'或其他),如果設置了該變量,則不允許用戶發佈(隱藏提交按鈕或在javascript中使用PHP if語句來僅執行當該變量沒有設置時的動作 – Travesty3

+0

@ Travesty3 - 你應該將其作爲回答 – andrewsi

回答

2

聽起來像是應該能夠使用PHP session variable輕鬆完成的事情。

只需使用會話並設置一個會話變量(調用它發佈的東西),如果設置了該變量,則不允許用戶發佈(隱藏提交按鈕或在javascript中使用PHP if語句)只有在未設置該變量時執行操作)。

當用戶關閉瀏覽器時會話將被清除。

作爲一個可能的例子,在添加到數據庫中你的PHP代碼,只是把這個開頭:

session_start(); 
if (isset($_SESSION['posted'])) 
    die("posted"); 
$_SESSION['posted'] = true; 


編輯:

你只需要添加另一個else if聲明。它會是這個樣子:

if(response == "knownudid"){ 
    document.getElementById('udid_message').innerHTML = '<br><i><font color="red">This UDID has already been inserted and it is valid.</font></i>' ; 
}else if(response == "noudid"){ 
    document.getElementById('udid_message').innerHTML = '<br><i><font color="orange">Please, enter your UDID.</font></i>' ; 
}else if(response == "errudid"){ 
    document.getElementById('udid_message').innerHTML = '<br><i><font color="red">It seems this UDID is not correct. Please check for typo.</font></i>' ; 
}else if(response == "validatedudid"){ 
    document.getElementById('udid_message').innerHTML = '<br><i><font color="green">This UDID has been found as an invalid one. Now it is valid.</font></i>' ; 
}else if(response == "posted"){ // Here is the new one 
    document.getElementById('udid_message').innerHTML = '<br><i><font color="red">You have already posted a UDID for this session.</font></i>' ; 
}else{ 
    document.getElementById('udid_message').innerHTML = '<br><i><font color="green">UDID <b>'+response+'</b> successfully inserted.</font></i>'; 
} 
+0

我將不得不看到'insert_udid )'函數,這聽起來像是你正在通過AJAX調用PHP腳本,如果是這樣的話,你需要檢查PHP腳本的響應並向用戶顯示相應的消息。那。 – Travesty3

0

有了一些不錯的jQuery或JS你可以隱藏用戶後提交表單。

+0

這並不強制用戶關閉並重新打開他們的瀏覽器,他們只需要刷新頁面 – Travesty3

+0

嗯真的,PHP會話似乎更合適 – MimiEAM

0
  • 具有HTML元素中的JavaScript是壞的,它移動到< script>標記,甚至更好,一個單獨的.js文件。

  • 對於HTML5瀏覽器,placeholder是爲文本字段提供指令的更加優雅的方式。

  • 如果您正在使用AJAX提交表單,你的函數insert_udid()附加內:

document.getElementById('your_button_or_form').disabled = true; 
// or document.getElementById('your_form').style.visibility = 'hidden'; 

......否則,您將需要php代碼來禁用或忽略HTML中的表單。

相關問題