我正在使用投票系统做一个网站。我想要的是禁用所有输入按钮(投票能力),如果用户没有登录(即会话不存在)。如何在页面顶部检查PHP,然后允许/禁止输入按钮?我会使用CSS还是jQuery?
答案 0 :(得分:3)
代码中的某处检查会话是否未设置:
if(!isset($_SESSION['some_key'])){
$disable = true;
}else{
$disable = false;
}
然后,在html中:
<input type="radio" name="" value=""<?=($disable ? " disabled=\"disabled\"" : "");?>/> Vote 1
<input type="radio" name="" value=""<?=($disable ? " disabled=\"disabled\"" : "");?>/> Vote 2
<input type="radio" name="" value=""<?=($disable ? " disabled=\"disabled\"" : "");?>/> Vote 3
但是,如果此人之前已经投票,您仍需要在接受投票前检查服务器端,因为可以轻松编辑此表单以反复发布数据。
答案 1 :(得分:1)
<?php if(!isset($_SESSION['logged']))
{
echo "<script language=\"javascript\">";
echo "$(document).ready(function()
{
$('input[type=submit]').each(function() { this.attr('disabled', 'disabled') });
});</script>"
}
?>
答案 2 :(得分:0)
您应该动态生成正确的HTML代码。像这样:
<?php if(isset($_SESSION['logged'])): ?>
<form> voting form </form>
<?php else: ?>
<p><a href="...">Sign in</a> to vote</p>
<?php endif ?>
您还应该在处理表单之前检查用户是否已登录:
if (isset($_SESSION['logged']) && isset($_POST['vote'])) {
// process form
}