【问题标题】:Disable all input buttons on page if no PHP session exists如果不存在 PHP 会话,则禁用页面上的所有输入按钮
【发布时间】:2011-06-24 11:14:45
【问题描述】:

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

【问题讨论】:

  • 我想说这完全取决于您现在为会话管理做什么以及如何输出这些按钮。也许显示一些代码。

标签: php jquery css session input


【解决方案1】:

在代码中的某处检查会话是否未设置:

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

但是你仍然需要在接受投票之前在服务器端检查,如果这个人以前投票过,因为这个表格可以很容易地编辑一次又一次地发布数据。

【讨论】:

    【解决方案2】:
    <?php if(!isset($_SESSION['logged'])) { echo "<script language=\"javascript\">"; echo "$(document).ready(function() { $('input[type=submit]').each(function() { this.attr('disabled', 'disabled') }); });</script>" } ?>

    【讨论】:

      【解决方案3】:

      您应该动态生成正确的 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
      }
      

      【讨论】:

      • hmmm..问题是我有大约 30 个文本 sn-ps,在每个文本下,有一个投票 + 投票按钮。这些是启用/禁用的按钮
      猜你喜欢
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2021-07-13
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多