2016-03-18 21 views
0

file1.phpWie kann ich auf SESSION-Variablen in PHP-Dateien zugreifen?

<?php 
session_start(); 
$email = $_POST['email']; 
$password = $_POST['pass']; 

$_SESSION["email"] = $email; 
$_SESSION["pass"] = $password; 

//echo $_SESSION["email"]; 
header("location:file2.php"); 
?> 

file2.php

<?php 
session_start(); 

$email = $_SESSION["email"]; 

echo $_SESSION["email"]; 
?> 

ich mit der E-Mail der Benutzer angemeldet angezeigt werden soll. Der Fehler sagt "Undefined index email" in der zweiten Zeile in file2.php. Überall, wo ich hinsah, sagt session_start() am Anfang jeder Datei zu setzen, und die Sitzung in file1.php zu erstellen, dann greifen Sie über Zeile 2 von file2.php darauf zu.

Das einzige, was ich denke, dass dies nicht funktioniert, ist, dass dies nicht HTML verwendet. Ich habe eine Android-App, in der der Benutzer seine E-Mail-Adresse und sein Passwort eingibt. Meine App übergibt die Anmeldedaten an file1.php. Ich weiß, dass es richtig ausgibt, denn wenn ich Zeile 6 von file1.php auskommentiere, funktioniert die Echoantwort korrekt. Es wird aus irgendeinem Grund in der Datei2.php nicht wiedergegeben.

Der Grund, warum ich dies brauche, ist, weil ich in der Lage sein möchte, die E-Mail-Session-Variable in einer beliebigen PHP-Datei zu verwenden (zum Ausloggen, Anzeige von Informationen, etc.), und wenn ich es nicht funktionieren kann einfaches Beispiel Ich werde nirgendwohin gehen.

+0

'Ich habe eine Android-App, wo der Benutzer seine E-Mail-Adresse und sein Passwort eingibt. Meine App gibt die Zugangsdaten an file1.php'aus. Hat die App dann auch Zugriff auf die Datei2.php oder tun Sie das anders? – skrilled

+0

Nein, die App greift nicht direkt auf die Datei2.php zu. Deshalb möchte ich in der Lage sein, dieses einfache Beispiel zu machen, weil ich auf jeder PHP-Seite wissen muss, welche E-Mail gerade für andere Abfragezwecke angemeldet ist. Die App greift auf bestimmte einzelne PHP-Seiten für verschiedene Dinge zu, aber ich muss in der Lage sein, die Datenbank basierend auf der E-Mail, die in Datei1.php eingegeben wurde, abzufragen. – gfuller16

Antwort

0

Es gibt mehrere ähnliche Fragen auf der Website (z. B. this). Sie schlagen vor, die Methode isset zu verwenden, um sicherzustellen, dass Ihre Sitzungsvariable verfügbar ist.

In Ihrem Fall könnte es vor dem header Anruf in file1.php hinzugefügt werden, so

if (isset($_SESSION['email'])) { 
    header("location:file2.php"); 
} 
0

Die Sitzungen in PHP sind standardmäßig Cookies in Ihrem Browser, Ihre APP verwenden keine Cookies, müssen Sie Implementieren Sie eine andere Methodensitzung wie ein Selbstgenerierungstoken gegen eine Datenbank, vielleicht ein REST-Framework.

können andere Lösung, die Cookies mit Header emulieren, aber ich weiß nicht, ob das in Android

0

Session Arbeiten von Cookie-Unterstützung, macht Ihr Android-App-Anfrage Klasse unterstützt dies möglich ist?

Es scheint, dass Ihr Client eine Anfrage an file1.php sendet, dann Serverantworten mit Sitzungs-ID in einem Cookie, dann wird Ihre Anwendung zu file2.php weitergeleitet. In normaler Weise sendet der Browser die vorherige Sitzungs-ID, um dem Server mitzuteilen, welche Sitzung selbst gehört. Bitte überprüfen Sie, ob Sie diesen Cookie senden, während Sie file2.php anfordern.

Verwandte Themen