Я создаю систему учетных записей пользователей в 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 неясно об этом.Любая помощь в этом вопросе будет принята с благодарностью.