2013-10-02 85 views
1

不同的網頁的工作。一旦我登錄我設置body元素中的會話變量(內部login.php中)如下:會話變量不能跨越

session_start(); 
$_SESSION['Username'] = $_POST["Username"]; 

if(isset($_SESSION['Username'])) 
    $loginTrue = 1; 
else 
    $loginTrue = 0; 

,我已經加入此

頂部的每一頁上
<?php 
session_start();   //this was added after seeing many suggestions in stack overflow that session_start() has to be called at the top on each page. Though i tot calling once was sufficient. 
if(isset($_SESSION['Username'])) 
    $loginTrue = 1; 
else 
    $loginTrue = 0; 
?> 

現在每當我從login.php登錄後重定向我的頁面$ _SESSION ['Username']得到未設置,我不知道如何。我使用按鈕單擊重定向,如在 onclick執行window.location = home.php

+0

難道是因爲$ _POST [「用戶名」]爲空?嘗試使用$ _POST ['用戶名'],看看是否有效。 – Maximus2012

+0

在你正在接收POST的頁面上執行'print_r($ _ POST)'來檢查它是否爲空 –

+0

不,它們都很完美,因爲當我打印$ _SESSION ['Username']時,登錄頁面 $ loginTrue在我登錄時爲1,然後每當我重定向它變爲0時,就像它重置一樣。有沒有像重定向鏈接,即window.location =「http:// localhost:8080/home.php」???我應該強制使用http?順便說一句,即使這沒有工作。我只是想知道!!! – ebdo

回答

0

好吧夥計我解決了它莫名其妙。我不知道我是怎麼做的,但我做到了。首先,我創建了4個網頁,一個小網站僅用於檢查是否支持會話變量。一旦我確認了這一點,我做了下面的工作,我的原始網頁開始工作會議開始是非常重要的所有網頁的頂部。在不同的瀏覽器中嘗試會話活動。還要通過關閉Dreamweaver進行檢查。另外,還要確保用於替代過渡性的東西,也是會話開始自帶DOCTYPE HTML聲明之前

1

這不是comman 檢查你的代碼,此代碼可能會出現一些錯誤是在網頁

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

上並檢查你的php.ini設置。

然後用不同的瀏覽器檢查你的代碼。

在會話開始之前,您的頁面上應該有空白輸出。