2016-04-10 17 views
0

私は写真とユーザー名を保存するprofileinfoというセッションを作成しましたが、別のタブをクリックしてセッションデータを送信した後にのみ動作します。これを行う方法はありますか?セッションは写真とユーザー名を取得できません

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>"; 
} 

私は取得しています。このエラーメッセージ:これは私がセッションデータが、その動作していないといい、私の別のページで

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); 

この

は私のindex.phpコードです別のページをクリックしました:

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

これを解決する方法はありますか。前もって感謝します。

+0

はあなたの2番目のページの上部にある ')('のsession_startを追加しましたか? – WillardSolutions

答えて

1

$photoにURLがある場合は、base64_encodeを使用してください。あなたはクエリとしてURLを提出できません。 2ページ目で

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]'を3番目のページに渡すことはできません。私はそれを第2ページにのみ渡すことができます。 – anonymous5671

+0

@ anonymous5671あなたはsession_start()に気付きましたか?第2のコードブロックの上の?この方法で試してみてください、それは大丈夫ですか? – mertizci