2016-04-10 8 views
0

Ich habe eine Sitzung namens profileinfo erstellt, die es speichert das Foto und auch den Benutzernamen, aber es funktioniert nur für einmal, nachdem ich auf einen anderen Tab klicken Sie die Sitzungsdaten. Gibt es irgendwelche Möglichkeiten, dies zu tun?Sitzung kann nicht Foto und Benutzername

Das ist mein index.php Code:

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

Das ist meine andere Seite ist, wo ich die Sitzungsdaten genannt, aber seine nicht funktioniert:

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

Dies ist die Fehlermeldung ich erhalte, wenn ich habe auf der anderen Seite:

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

gibt es sowieso, diese zu lösen. Danke im Voraus.

+0

Haben Sie hinzufügen 'session_start()' an der Spitze Ihrer zweiten Seite? – WillardSolutions

Antwort

1

Wenn Ihre $photo URL enthält, sollten Sie base64_encode verwenden. Sie können keine URL als Abfrage senden.

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

Auf den zweiten Seite, Verwendung base64_decode Ihr Foto zu entschlüsseln:

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

eigentlich das ist nicht die prb .. die prb ist ich kann nicht übergeben die '$ _SESSION ['profileinfo]' auf eine dritte Seite. Ich kann es nur auf die zweite Seite nur übergeben. – anonymous5671

+0

@ anonymous5671 Haben Sie bemerkt, dass session_start(); über dem zweiten Codeblock? Kannst du es auf diese Weise versuchen und sehen? Ist es in Ordnung? – mertizci

Verwandte Themen