2016-04-10 49 views
0

我創建了一個名爲profileinfo的會話,它存儲了照片以及用戶名,但它只能用於一次,之後我點擊另一個選項卡發送會話數據。有沒有辦法做到這一點?會話無法獲取照片和用戶名

這是我的index.php代碼:

session_start(); 
$name = $auth_info['profile']['displayName']; 
$address = $auth_info['profile']['address']['formatted']; 
$photo = $auth_info['profile']['photo']; 

$_SESSION['profileinfo'] = array($name, $address, $photo); 

$redirect = "http://localhost/cm0655-assignment/fanzine.php?photo=".$photo."&displayName=".$name; 
header('Location: '.$redirect); 

這是我的另一個網頁,我所謂的會話數據,但它不工作:

if(isset($_SESSION['profileinfo'])){ 
    echo "<li><a href=\"fanzine.php\">Fanzine</a></li>"; 
    echo "<li><a href=\"vcinfo.php\">Virtual Club House</a></li>"; 
    echo "<li><a href='logout.php'>Logout</a></li>"; 
    echo "<ul class=\"nav navbar-nav navbar-right\">"; 
    echo "<li style=\"float:right;list-style-type:none;\">"; 
    echo "<a class=\"janrainEngage\" href=\"#\">"; 
    echo "<img src=".$_GET['photo']. " height=\"30\" width=\"30\"/>"; 
    echo $_GET['displayName']; 
    echo "</a></li></ul>"; 
}else{ 
    echo "<li><a class=\"janrainEngage\" href=\"#\">Login</a></li>"; 
} 

此錯誤消息我收到的時候我點擊另一個頁面:

Notice: Undefined index: photo in 
Notice: Undefined index: displayName in 

有沒有辦法解決這個問題。提前致謝。

+0

你加'在session_start()'在你的第二個頁面的頂部? – WillardSolutions

回答

1

如果您的$photo包含網址,則應使用base64_encode。你不能提交一個網址作爲查詢。

session_start(); 
$name = $auth_info['profile']['displayName']; 
$address = $auth_info['profile']['address']['formatted']; 
$photo = base64_encode($auth_info['profile']['photo']); 

$_SESSION['profileinfo'] = array($name, $address, $photo); 

$redirect = "http://localhost/cm0655-assignment/fanzine.php?photo=".$photo."&displayName=".$name; 
header('Location: '.$redirect); 

在第二頁,使用BASE64_DECODE解碼您的照片:

session_start(); 
if(isset($_SESSION['profileinfo'])){ 
    echo "<li><a href=\"fanzine.php\">Fanzine</a></li>"; 
    echo "<li><a href=\"vcinfo.php\">Virtual Club House</a></li>"; 
    echo "<li><a href='logout.php'>Logout</a></li>"; 
    echo "<ul class=\"nav navbar-nav navbar-right\">"; 
    echo "<li style=\"float:right;list-style-type:none;\">"; 
    echo "<a class=\"janrainEngage\" href=\"#\">"; 
    echo "<img src=".base64_decode($_GET['photo']). " height=\"30\" width=\"30\"/>"; 
    echo $_GET['displayName']; 
    echo "</a> 
        </li> 
       </ul>"; 

}else{ 
    echo "<li><a class=\"janrainEngage\" href=\"#\">Login</a></li>"; 

} 
+0

實際上那不是prb .. prb是我不能傳遞'$ _SESSION ['profileinfo]'到第三頁。我只能將它傳遞給第二頁。 – anonymous5671

+0

@ anonymous5671你有沒有注意到session_start();在第二個代碼塊的上方?你可以試試這種方式,看看是否可以。 – mertizci