Php 如何只允许每个用户发布一篇文章?
以下是添加到数据库的代码:Php 如何只允许每个用户发布一篇文章?,php,javascript,udid,Php,Javascript,Udid,以下是添加到数据库的代码: <?php /*Config*/ 使用一些漂亮的jQuery或js,您可以在用户提交表单后隐藏表单。听起来应该可以很容易地使用jQuery或js完成 只需使用sessions并设置一个session变量(称为post或其他),如果该变量已设置,则不允许用户发布(隐藏submit按钮或在javascript中使用PHP if语句仅在未设置该变量时执行操作) 当用户关闭浏览器时,会话将被清除 作为一个可能的示例,在添加到数据库的PHP代码中,只需将以下内容放在开
<?php
/*Config*/
使用一些漂亮的jQuery或js,您可以在用户提交表单后隐藏表单。听起来应该可以很容易地使用jQuery或js完成
只需使用sessions并设置一个session变量(称为post或其他),如果该变量已设置,则不允许用户发布(隐藏submit按钮或在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>';
}
if(响应==“knownudid”){
document.getElementById('udid_message')。innerHTML='
此udid已插入且有效。“;
}else if(响应=“noudid”){
document.getElementById('udid_message')。innerHTML='
请输入您的udid';
}else if(响应==“errudid”){
document.getElementById('udid_message')。innerHTML='
此udid似乎不正确。请检查键入错误。“;
}else if(响应==“validatedudid”){
document.getElementById('udid_message')。innerHTML='
已发现此udid无效。现在它是有效的';
}else if(response==“posted”){//这是新的
document.getElementById('udid_message')。innerHTML='
您已经发布了此会话的udid';
}否则{
document.getElementById('udid_message')。innerHTML='
udid'+response+'已成功插入';
}
- 将javascript放在HTML元素中是不好的,将其移动到标记中,或者更好,移动到一个单独的.js文件中
- 对于HTML5浏览器,
是一种为文本字段提供指令的更优雅的方式
- 如果使用AJAX提交表单,请在函数
insert\u udid()
add中:
…否则,您将需要php代码从响应HTML中禁用或忽略表单。您还可以添加您为添加到数据库而编写的代码吗?听起来应该可以使用。只需使用sessions并设置一个session变量(称之为posted
或其他),如果该变量已设置,则不允许用户发布(隐藏submit按钮或在javascript中使用PHP if语句,仅在未设置该变量时执行操作。@Travesty3-您应该将其作为一个答案发布,这样不会强制用户关闭或重新打开浏览器。他们只需刷新页面。嗯,是的,PHP会话似乎更合适,我必须看到t。)他编写了insert\u udid()
函数的代码。听起来你是在通过AJAX调用PHP脚本。如果是这种情况,你需要检查PHP脚本的响应,并向用户显示相应的消息。发布代码,我可以帮上忙。
document.getElementById('your_button_or_form').disabled = true;
// or document.getElementById('your_form').style.visibility = 'hidden';