2013-03-21 2 views
0

мне нужна помощь по получению моего Navbar заменить ссылку для входа на выход из системы для пользователей, вошедшие в Я попробовал этот код:.PHP ссылка меню изменения, если пользователь вошел в системе

<?php 
    if(isset($_SESSION['username'])) { 
     echo '<li><a href="logout.php"><span>Log Out</span></a></li>'; 
    } else { 
     echo '<li><a href="login.php"><span>Log In</span></a></li>'; 
    } 
?> 

Но это не работают. Он по-прежнему показывает кнопку входа в систему на моем навигаторе.
я вставил код в моем nav.php
код в моем nav.php выглядит эта

<div id='cssmenu'> 
    <ul> 

     <?php include('include\menuspace.php'); ?> 

     <li><a href='index.php' id='framside' onclick='changeDiv('1')'><span>Framsida</span></a></li> 

     <li><a href='skolen.php' id='skulen'><span>Skulen</span></a></li> 

     <?php include('include\ifnotie.php'); ?> 
     <?php include('include\ifie.php'); ?> 

     <li><a href='elevar.php' id='elevrådet' onclick='changeDiv('3')'><span>Elevrådet</span></a></li> 

     <li><a href='ledelsen.php' id='ledelse' onclick='changeDiv('4')'><span>Ledelse</span></a></li> 

     <li><a href='kontakt.php' id='kontakt' onclick='changeDiv('5')'><span>Kontakt</span></a></li> 

     <?php if(isset($_SESSION['username'])) { 
     echo '<li><a href="logout.php"><span>Log Out</span></a></li>'; 
     } else { 
     echo '<li><a href="login.php"><span>Log In</span></a></li>'; 
     } ?> 

    </ul> 
</div> 

The nav.php представляет собой один файл, который я использую код <?php include'(include/nav.php)'; ?>
в каждый php-файл, для которого требуется панель навигации.

Вот Print Screen of access controlled page, который требует, чтобы вы вошли в систему, чтобы увидеть.

--- EDIT ---

Я сделал, как LotusH сказал, чтобы изменить if(isset($_SESSION['username'])) к if(isset($_SESSION['name_of_user']))

Он работает до тех пор, пока я нажмите на кнопку выхода из системы. Тогда он не изменится на логин.

--- EDIT-19.04.2012 ----

Исправлена ​​проблема с выходом из системы изменений для входа, пришлось поставить session_destroy();

+0

У вас есть сеанс? –

+0

Вы были session_start(); перед этим фрагментом кода? – Waygood

+1

Глупый вопрос; вы фактически устанавливаете '$ _SESSION ['username']' при входе в систему и начале сеанса ('session_start();') в верхней части страницы? –

ответ

1

По выходу var_dump($_SESSION)

array(3) { 
    ["name_of_user"]=> string(13) "Administrator" 
    ["email_of_user"]=> string(19) "[email protected]" 
    ["usr_7fe2869648"]=> string(13) "Administrator" 
} 

в своем комментарии, вы должны переписать if(isset($_SESSION['username'])) в if(isset($_SESSION['name_of_user']))

+0

Я бы просто хотел сказать Спасибо: D я исправил все это ... оказалось, что я создавал локальные файлы .php на клиенте (который я уже знал), но вместо импорта на сервер разработки с установленным IIS, я импортировал их на виртуальный сервер, работающий на сервере разработки: facepalm: я чувствую себя настолько глупо сейчас xD –

+0

@ KennethHardstylezVasquez Рад помочь :) 'var_dump' и' printr' отлично подходят для отладка, использование их экономит ваши дни, чтобы задать такие вопросы, научиться их использовать. – LotusH

+0

Да, спасибо за совет, никогда не использовали var_dump раньше. Я все еще участвую в процессе обучения PHP, поэтому я узнал больше благодаря вам :) –

0

В первую очередь у вас есть startsession или нет? Если нет, то напишите session_start(); в верхнем

попробуйте этот код:

<?php 
    if(isset($_SESSION['username']) and $_SESSION['username']!='') { 
     echo '<li><a href="logout.php"><span>Log Out</span></a></li>'; 
    } else { 
     echo '<li><a href="login.php"><span>Log In</span></a></li>'; 
    } 
?> 
+0

я помещаю 'seassion_start();' как это: 'Log Out'; } else { echo '

  • Log In
  • '; } ?> ' –

    Смежные вопросы