如果不存在PHP会话,则禁用页面上的所有输入按钮

时间:2011-02-09 21:48:52

标签: php jquery css session input

我正在使用投票系统做一个网站。我想要的是禁用所有输入按钮(投票能力),如果用户没有登录(即会话不存在)。如何在页面顶部检查PHP,然后允许/禁止输入按钮?我会使用CSS还是jQuery?

3 个答案:

答案 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
}