2016-03-23 7 views
-1

Ich habe eine einfache Anmeldeseite erstellt, um auf eine Anwendung zuzugreifen. Die Anmeldung funktioniert manchmal gut, aber von Zeit zu Zeit habe ich Schwierigkeiten, mich beim System anzumelden, da die Sitzungsdaten auf der letzten Seite verloren gehen.PHP Session Variable wird zwischen den Seiten verloren.

Die Dateien, die ich habe, sind 1) login.php, mit Login-Name und Passwort-Feld.

2) loginprocess.php - Welche Verbindung zur Datenbank herstellen wird, um zu prüfen, ob dort Benutzername und Kennwort vorhanden sind, nach denen eine Sitzung erstellt wird.

3) listing.php - Welches ist die letzte Seite, wenn die Anmeldung erfolgreich ist.

Die Seite loginprocess.php erstellt eine Sitzungsvariable, wenn Benutzername und Kennwort in der Datenbank vorhanden sind. Es wird dann auf die letzte Seite umgeleitet.

$selectstring = "SELECT * FROM logintable WHERE username='".$loginname."' AND password='".$pass."'"; 
$result = mysql_query($selectstring); 

//IF YES THEN GO TO MAIN 
if(mysql_num_rows($result) > 0) 
while($row = mysql_fetch_array($result)) 
{ 
//CREATE SESSION 
session_start(); 
// Set session variables 
$_SESSION["loginname"]= $loginname;  
header("Location: listing.php"); 
exit; 

} 
else { 
echo "ERROR"; 
header("Location: login.php?message=error"); 
exit; 
} 

Am oberen Ende der letzten Seite, listing.php, werde ich ein Skript, das, wenn Session-Variable leer ist umleitet.

session_start(); 

if (!isset($_SESSION['loginname']) && empty($_SESSION['loginname'])) { 
    header("Location: login.php"); 
} 

Bin ich session_start() einfügen; zu spät auf loginprocess.php?

+1

Warum _session_start(); _ mehrmals? – C2486

+1

Bitte schreiben 'session_start();' am oberen Rand der Seite nicht in Ihrem while-Schleife – Saty

+0

entfernen _echo "ERROR"; _ von anderen Teil – C2486

Antwort

1

Verschieben Sie zuerst die session_start(); an den Anfang Ihrer Datei.

Als nächstes müssen Sie ein oder anstelle einer UND in Ihrem if tun, weil der Login-Namen entweder ungesetzt oder leer.

Verwandte Themen