2015-09-16 5 views
-1

Я смущен. Я пытаюсь, чтобы эти ссылки отображались только во время входа пользователя.Сессия не работает html

Но что-то странное происходит.

Вот мой код в index.php ...

// at the beginning of the page i have 
session_start(); 
.... 
.... 
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
      <ul class="nav navbar-nav navbar-right"> 


       <li> 
        <a class="page-scroll" href="#about"> <?php if(!isset($_SESSION['user'])){echo 'Profile';?></a> 
       </li> 

       <li> 
        <a class="page-scroll" href="#services"><?php if(isset($_SESSION['user'])) echo 'Post Links';?></a> 
       </li> 
       <li> 
        <a class="page-scroll" href="#portfolio"><?php if(isset($_SESSION['user'])) echo 'My Views';?></a> 
       </li> 
       <li> 
        <a class="page-scroll" href="#contact"><?php if(isset($_SESSION['user'])) echo 'Logout';?></a> 
       </li> 

      </ul> 
     </div> 

Это не работает. Затем я сделал фиктивный .php, чтобы проверить, работает ли моя сессия.

<?php session_start();?> 
<!DOCTYPE html> 
<html> 

<head> 
</head> 

<body> 
<?php if(isset($_SESSION['user'])) echo "Session is up and runnig";?> 
</body> 
</html> 
//I get Session is up and runnig 

И это работает. Поэтому я смущен. Что я делаю не так?

+0

где '$ _SESSION [ 'пользователь'] = "John Doe";' быть назначены? –

+0

В login.php не включили его здесь ... – Jones

+0

использовать отчет об ошибках, а затем проверить свои lgos, я не могу вам помочь –

ответ

0

У вас есть незаконченная скобка в

<?php if(!isset($_SESSION['user'])){echo 'Profile';?> 
           ^    ^??? 

и отчетности об ошибке бросили бы вам ошибку синтаксического анализа (конец файла), похожая на:

Parse error: syntax error, unexpected end of file in the line X

ли сделать это привычкой использовать надлежащим методы крепления.

if(condition) {...} 

В противном случае могут возникнуть побочные эффекты при использовании сложного кодирования.

Добавить error reporting в начало файла (ов), который поможет найти ошибки.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

Sidenote: Отображение ошибок не должно быть сделано только в постановке, и никогда производства.

Не говоря уже о моих Spidey смысла покалывания об использовании .html, а не .php

Но ваш вопрос сказал «Вот мой код в index.php ...» но вы сказали, что в комментариях ваш файл .html. Это не анализируется как PHP (по умолчанию), если вы не указали Apache обрабатывать файлы .html как PHP.

Кроме того, вы можете использовать вместо этого тернарный оператор.

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