2016-11-16 68 views
-2

我試圖從一個頁面通過使用會話值到另一個,但它說PHP會議通知:未定義指數

注意:未定義指數:上線USER_ID路徑\ file.php 61

我在哪裏創建的會話是如下

// checking for session, if not then start session 
if(!isset($_SESSION)) { 
     session_start(); 
} 
// assigning user_id to session var 
$_session['user_id']=$row['user_id']; 

這是代碼通過,我訪問會話變種的文件:

if(!isset($_SESSION)) { 
     session_start(); 
} 
// trying to access session var (previously defined) 
$user_id=$_session['user_id']; 

我在哪裏犯錯。請引導我

注意:那些認爲這可能是一個重複的問題。我的回答是,它可能是但沒有解決我的問題。因爲我的是因爲全球變量的大小寫敏感,所以其他人不是這個問題。

+0

然後它意味着'$ _session ['user_id'] = $ row ['user_id'];'不工作。 – Irvin

+1

重複:[PHP的:「注意:未定義的變量」和「注意:未定義的索引」](http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) –

+0

隊友,其實我正在檢查用戶ID,如果只存在,我傳遞到第二頁。所以它意味着user_id存在,所以在創建會話伴侶時可能會導致問題。你能不能建議一些想法 –

回答

3

它應該是$ _SESSION而不是$ _session。

$_SESSION['user_id']=$row['user_id']; 

$user_id = $_SESSION['user_id']; 

$_SESSION是一個全局變量,應該寫成大寫。當你使用小寫字母的變量時,在這種情況下,它不會得到變量,因爲它從來沒有被定義過,並且沒有鑰匙user_id,因此你會得到錯誤。希望這可以幫助。

2

錯誤是模糊的,user_id未定義的索引可能是$_SESSION$row的區別,你可以用var_dump()做一些調試來檢查哪個是哪個。以下是會話的一些提示。

會話中常見的錯誤是忘記在每個文件的頂部包含 session_start() 並且不需要檢查是否設置了$ _SESSION。無論如何,請啓動它!

此外,爲避免此錯誤,您應該進行檢查以確保索引user_id存在。是這樣的:

if (isset($_SESSION['user_id']))

確保使用大寫字母SESSION,$_SESSION,不知道這是否有差別,但它對於服務器變量非常通用的標準。

2
$_SESSION['user_id'] = $row['user_id']; 

和接收端

$user_id = $_SESSION['user_id']; 
2

SESSION工作要求,會議是活躍在需要訪問會話數據的所有腳本。這意味着,你應該在所有的腳本需要訪問任何會話數據的頂部做這樣的事情:

<?php // NOTICE THERE IS NO SPACE BEFORE <?php 
    // FIRST CHECK IF SESSION EXIST BEFORE STARTING IT. 
    // DO THIS AT THE VERY TOP OF EACH SCRIPT THAT NEEDS ACCESS TO $_SESSION DATA 
    if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
     session_start(); 
    } 

那麼你可以與會議的工作,像這樣:

<?php 
    if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
     session_start(); 
    } 

    // SOME-CODE... 

    $_SESSION['user_id'] = $row['user_id']; 

    // SOME-CODE... 

而且然後再一次;你可能會得到這樣的會話數據:

<?php 
    if (session_status() == PHP_SESSION_NONE || session_id() == '') { 
     session_start(); 
    } 

    // SOME-CODE... 

    $user_id = $_SESSION['user_id']; 

    // SOME-CODE...