2015-02-09 8 views
5

Sto facendo un progetto di database per l'università e sto lottando con un problema qui. Sto provando a mostrare "accedi" quando non ci sono sessioni e "disconnetti" quando c'è una sessione. Ma in realtà anche dopo aver effettuato il login mi mostra ancora "accedi" e ho provato a stampare_r ($ _ SESSION); e mi dice che la variabile è undefined

Ho un file di logout:

<?php 
session_start(); 
session_destroy(); 
header("Location:index.php"); 
?> 

e un file init.php:

<?php 
session_start(); 
?> 

init.php viene chiamato quando accedo.

Ecco una parte di index.php:

<?php 
    require 'db/connect.php'; 
    require 'functions/security.php'; 
    ?> 

    <html> 
     <head> 
      <title>Home</title> 
      <meta charset="UTF-8"> 
      <link rel="stylesheet" href="css/common.css"> 
     </head> 
     <body> 
      <div id="linking">  
    <?php 
    //print_r($_SESSION); 
    if (session_status() === PHP_SESSION_NONE) { 
     ?> 
        <a href="login.php">Log In</a>   
        <?php 
       } else { 
        ?> 
        <a href="logout.php">Log Out</a> 
        <?php 
       } 
       ?> 
       <a href="new_customer.php">Register</a> 
       <a href="trips.php">Search for trips</a> 
      </div> 
      <hr> 
      <section id="section"> 
+0

Dovete chiamare 'session_start()' iv ** ** ogni file. Detto questo, mettere 'session_start()' all'inizio di 'index.php' farà il trucco. – mudasobwa

+2

@AhosanKarimAsik Ecco alcuni consigli peggiori – Daan

+0

Il fatto è che ho richiesto init.php nella parte superiore di index.php e poi ho sempre iniziato una sessione, no? –

risposta

3

quando l'accesso è riuscito sulla pagina di accesso.

session_start(); 
$_SESSION['user_logged_in'] = true; 

nella tua pagina di logout

session_start(); 
unset($_SESSION['user_logged_in']); 
session_destroy(); 

nella vostra home page

<?php 
    session_start(); 
    if(isset($_SESSION['user_logged_in'])) { 
?> 
    < a href='logout.php'>Logout</a> 
<?php 
    } 
else { 
?> 
    < a href='login.php'>Login</a> 
<?php 
    } 
?> 
+0

Questo ha risolto il mio problema, grazie mille –