2010-07-03 87 views
0

我正在設置一個函數內的會話變量studNameDetails1() 而我試圖在函數ViewMark()中檢索它。這是我的兩個功能,但沒有任何結果:爲什麼我的會話變量沒有在這裏設置?

function studNameDetails1() 
{ 
    $_SESSION['ATTsub']=$sub_id = $ID[5]; 
} 
function ViewMark() 
{ 
     echo $_SESSION['ATTsub']; 
} 

當我呼應viewMark()價值,沒有價值。

+1

哪裏是'在session_start()'? – 2010-07-03 09:56:27

+0

@Prasoon Saurav:沒關係; '$ _SESSION'在運行時表現得像一個普通的變量。 – Gumbo 2010-07-03 09:58:10

+0

這兩個函數是否被調用爲同一個請求的一部分? – 2010-07-03 09:59:05

回答

2

這是處理會話的方式。

<?php // this starts the session 
session_start(); 

    // echo variable from the session, we set this on our other page 
echo "Our color value is ".$_SESSION['color']; 
echo "Our size value is ".$_SESSION['size']; 
echo "Our shape value is ".$_SESSION['shape']; ?> 

所有的值都存儲在我們在這裏訪問的$ _SESSION數組中。顯示此的另一種方式是簡單地運行這段代碼:

<?php session_start(); Print_r ($_SESSION); ?> 
3

$ID變量沒有被宣佈爲studNameDetails1函數內,因此,當您嘗試訪問它,一個未定義的值。這會將$_SESSION['ATTsub']$sub_id變量設置爲未定義,因此當您嘗試打印它們時,它們將顯示爲空。

如果這些變量已被定義的功能範圍之外,使用global關鍵字:

function studNameDetails1() 
{ 
    global $sub_id, $ID; 

    $_SESSION['ATTsub']=$sub_id = $ID[5]; 
} 

http://php.net/manual/en/language.variables.scope.php

+0

+1不要假定函數中有更多的代碼,就像我一樣。 – 2010-07-03 11:49:32

相關問題