2015-02-09 15 views
5

Tôi đang thực hiện một dự án cơ sở dữ liệu cho trường đại học và tôi đang gặp rắc rối với một vấn đề ở đây. Tôi đang cố gắng hiển thị "đăng nhập" khi không có phiên và "đăng xuất" khi có phiên. Nhưng thực sự ngay cả sau khi tôi đăng nhập nó vẫn cho tôi thấy "đăng nhập" và tôi đã cố gắng print_r ($ _ SESSION); và nó nói với tôi rằng biến là undefined

Tôi có một file logout:

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

và một file init.php:

<?php 
session_start(); 
?> 

init.php được gọi khi tôi đăng nhập.

đây là một phần của 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

Bạn phải gọi 'session_start() 'iv ** tất cả các file **. Điều đó nói rằng, đặt 'session_start()' vào đầu 'index.php' sẽ thực hiện thủ thuật. – mudasobwa

+2

@AhosanKarimAsik Thats một số lời khuyên tồi tệ hơn – Daan

+0

Điều là tôi cần init.php trên đầu trang của index.php và sau đó tôi luôn luôn có một phiên bắt đầu, không? –

Trả lời

3

khi đăng nhập của bạn thành công trên trang đăng nhập.

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

trong trang logout bạn

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

trong trang chủ của bạn

<?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

Điều đó giải quyết được vấn đề của tôi, cảm ơn bạn rất nhiều –

Các vấn đề liên quan