Отключите все кнопки ввода на странице, если нет сеанса PHP - PullRequest
2 голосов
/ 10 февраля 2011

Я делаю сайт с системой голосования.То, что я хочу, это отключить все кнопки ввода (возможность голосовать), если пользователь не вошел в систему (т.е. сеанс не существует).Как сделать проверку в PHP вверху страницы, а затем разрешить / запретить кнопки ввода?Буду ли я использовать CSS или JQuery?

Ответы [ 3 ]

3 голосов
/ 10 февраля 2011

Где-то в коде проверьте, не установлен ли сеанс:

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 голос
/ 10 февраля 2011

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

}
?>

0 голосов
/ 10 февраля 2011

Вы должны динамически генерировать правильный 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...