我如何只允许每个用户一个POST?

时间:2012-08-24 13:26:59

标签: php javascript udid

这是添加到数据库的代码:

<?php 
/*Config*/

3 个答案:

答案 0 :(得分: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>';
}

答案 1 :(得分:0)

使用一些不错的jQuery或js,您可以在用户提交后隐藏表单。

答案 2 :(得分:0)

  • 在HTML元素中使用javascript是不好的,将其移到&lt; script&gt;标签甚至更好,一个单独的.js文件。

  • 对于HTML5浏览器,placeholder是一种更为优雅的方式,可为文本字段提供说明。

  • 如果您使用AJAX提交表单,请在函数insert_udid()中添加:

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

...否则,您需要使用php代码禁用或省略响应HTML中的表单。