2013-11-03 74 views
0

只是想用會話做點簡單的事情。爲什麼這個會話沒有被設置?

我剛開始擴展我的網站,所以已經開始使用包含在每個頁面上的函數文件。

我正在嘗試使一個頁面只有accesable如果你登錄,如果沒有它重定向你,然後設置會話。此會話被檢測到並顯示「登錄」消息。

我以前有過這樣的代碼,但是由於我弄亂了東西而沒有工作。

所以需要對登錄的用戶進行檢查的頁面上,這是對在頁面的頂部:

<?php 
session_start(); 
require 'functions/core-functions.php'; 
isUserLoggedIn_referLogin(); 
?> 

這是函數:

// User Logged In Check For Protected Pages - Promt Login 

function isUserLoggedIn_referLogin() { 

if(!isset($_SESSION['user'])) { 
    $_SESSION['needlogin'] = "1"; 
    header('location: ' .$_SERVER['HTTP_REFERER']); 
} 

} 

這是用於顯示錯誤:

if (isset($_SESSION['needlogin'])) { 
    echo ' 
    <div class="invalidlogin">Please login to use this feature.</div>'; 
    unset($_SESSION['needlogin']); 
} 

我檢查了螢火蟲,但它顯示沒有設置任何會話。

任何想法?

+0

這是所有使用的代碼?你可能會在開始session_start()的時候遇到問題。 – SamV

+0

它的所有影響這個功能的代碼,我試圖添加。你可以擴展session_start()的問題在哪裏? – Lovelock

+0

你在調用'session_start()'之前是否向瀏覽器輸出了任何內容? – SamV

回答

0

你需要session_write_close

0

調用如果加文的答案不能解決你的問題之前,請確保任何發送到瀏覽器session_start()被調用。這裏有一個除外http://php.net/manual/en/function.session-start.php

要使用基於Cookie的會話,在session_start()必須 前outputing什麼瀏覽器調用。

相關問題