这里是添加到数据库的代码:
<?php
/*Config*/
听起来应该可以使用PHP会话变量轻松完成。
只需使用sessions并设置会话变量(称之为posted或其他),如果设置了该变量,则不允许用户发布(隐藏提交按钮或在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>';
}
使用一些不错的jQuery或js,您可以在用户提交后隐藏表单。
-
在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中禁用或省略该表单。