【发布时间】:2011-06-24 11:14:45
【问题描述】:
我正在做一个带有投票系统的网站。如果用户未登录(即会话不存在),我想要禁用所有输入按钮(投票的能力)。如何在页面顶部检查 PHP,然后允许/禁止输入按钮?我会使用 CSS 还是 jQuery?
【问题讨论】:
-
我想说这完全取决于您现在为会话管理做什么以及如何输出这些按钮。也许显示一些代码。
标签: php jquery css session input
我正在做一个带有投票系统的网站。如果用户未登录(即会话不存在),我想要禁用所有输入按钮(投票的能力)。如何在页面顶部检查 PHP,然后允许/禁止输入按钮?我会使用 CSS 还是 jQuery?
【问题讨论】:
标签: php jquery css session input
在代码中的某处检查会话是否未设置:
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
但是你仍然需要在接受投票之前在服务器端检查,如果这个人以前投票过,因为这个表格可以很容易地编辑一次又一次地发布数据。
【讨论】:
<?php if(!isset($_SESSION['logged']))
{
echo "<script language=\"javascript\">";
echo "$(document).ready(function()
{
$('input[type=submit]').each(function() { this.attr('disabled', 'disabled') });
});</script>"
}
?>
【讨论】:
您应该动态生成正确的 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
}
【讨论】: