Если заявления и права администратора в CodeIgniter - PullRequest
0 голосов
/ 23 декабря 2018

Я создаю систему учетных записей пользователей в CodeIgniter, и у меня возникают огромные проблемы с использованием данных сеанса для блокировки или разблокировки ссылок.Следующий код основан на рекомендациях из Переполнения стека ( Управление правами пользователей в Codeigniter ):

<div id="navbar">
          <ul class="nav navbar-nav">
            <li><a href="<?php echo base_url(); ?>">Home</a></li>
            <li><a href="<?php echo base_url(); ?>about">About</a></li>
            <li><a href="<?php echo base_url(); ?>Bodycontroller">Chapters</a></li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <?php if(!$this->session->userdata('logged_in')) : ?>
            <li><a href="<?php echo base_url(); ?>Users/login">Login</a></li>
            <li><a href="<?php echo base_url(); ?>Users/register">Register</a></li>
          <?php endif; ?>
            <?php if($this->session->userdata('user_class') == 1) : ?>
            <li><a href="<?php echo base_url(); ?>Users">User List</a></li>
          <? endif; ?>
          <?php if($this->session->userdata('logged_in')) : ?>
            <li><a href="<?php echo base_url(); ?>Bodycontroller/create">Compose</a></li>
            <li><a href="<?php echo base_url(); ?>Users/logout">Logout</a></li>
          <?php endif; ?>
          </ul>
        </div>

Работают ссылки «Составить» и «Выйти из системы», а ссылка «Список пользователей» - нет.Он не отображается независимо от того, какой пользователь вошел в систему. Я уже проверил, что cookie-файл сеанса содержит правильный класс пользователя.

Я предполагаю, что это проблема синтаксиса, но в руководстве по Codeigniter нет информации оЕсли заявления в этой ситуации.Конкретный код из переполнения стека перефразируется следующим образом:

      <?php if($this->session->userdata('user_class') == 1) : ?>
        <li><a href="<?php echo base_url(); ?>Users">User List</a></li>
      <? endif; ?>

Мне кажется, что оператор абсолютного равенства "== 1" может быть в неправильной форме, несмотря на то, что он скопирован из переполнения стека.

Еще одна вещь: это НЕ логическое значение.Некоторые из более ранних респондентов неправильно поняли мой первоначальный вопрос.1 - это пользовательский класс, в отличие от 2 или 3. Поэтому я попытался сделать его типом данных varchar или text, а также типом int, но не повезло.

Короче говоря, нужен ли ему какой-либо вид?скобок или цитат (я уже все перепробовал)Руководство CodeIgniter неясно об этом.Любая помощь в этом вопросе будет принята с благодарностью.

...