Hallo!
Ich habe ein Problem mit den Sessions!
Ich möchte einen Login schreiben. Die eine Datei heißt admin.php, in der die Login-Daten abgerfragt werden. Die andere datei heißt admin_cms.php, auf die nur verwiesen wird, wenn der Login gültig war.
Soweit so gut!
Das mit dem Login funktioniert schon ganz gut. Aber wenn ich im admin_cms.php script eine Funktion einbaue, die die Session auf login und passwort überprüft, dann funktioniert nichts mehr, dass heißt, ich werde immer auf die Seite admin.php umgeleitet.
Ich habe keinen Programmierfehler in der Abfrage der Session.
Ich habe festgestellt, dass die Variablen leer sind. Ich kann zwar mit session_is_registered() ermitteln ob die betreffende Variable vorhanden ist, was auch zutrifft, aber ich kann Sie nicht ausgeben.
Ich habe keine Änderungen in der PHP.ini vorgenommen, da anzunehmen ist, wenn ich den Session_namen und die Session_id in der URL übergebe, ich Zugriff auf die Variablen und deren Inhalt habe.
Wenn ich die Umleitung in der Admin.php ausschalte, d.h, nach dem Login auf die gleiche Seite verweise, dann bekomme ich Zugriff auf die Variablen, die übrigen in einem Array gespeichert sind.
session_start();
session_register("session");
function init_session($id, $login, $pass){
global $session;
$session[id] = $id;//Die ID des Users
$session[login] =$login;// Der Name des Users
$session[pass] =$pass;// Das Passwwort des U
$session[logged_in] = true;// Ein Flag
}
Ich redistriere also das Array session. In der Funktion speichere ich dann die übergebenen Variablen in diesem Array. Die Funktion wird aufgerufen, wenn der Login korrekto in admin.php war. Funktioniert wie gesagt auch.
Die Eingeloggt Funktion:
In dieser Funktion frage ich die User-Daten der Session ab, sodass sich nicht einfach jeder belibige User in das AdminMenü über den URL einloggen kann.z.B. www.Domain.de/admin_cms.php
In der Abfrageroutiene setze ich das Flag auf false, default true. Ich überprüfe dann die eingabe, also die angeblich übergebenen Variablen der Session, und werde prombt auf die login Seite, also admin.php zurück gewiesen, selbst mit dem Admin Passwort. Wenn alles stimmt, "sollte" das Script den logged_in Flag wieder auf true setzen und mich auf die Seite admin_cms.php überweisen.
Ich hoffe ich habe es verständlich genug ausgedrückt!
php123456
P.S.
Ich will keine Cookies verwenden! Die Daten sollen nur über den URL übergeben werden.
Ich habe ein Problem mit den Sessions!
Ich möchte einen Login schreiben. Die eine Datei heißt admin.php, in der die Login-Daten abgerfragt werden. Die andere datei heißt admin_cms.php, auf die nur verwiesen wird, wenn der Login gültig war.
Soweit so gut!
Das mit dem Login funktioniert schon ganz gut. Aber wenn ich im admin_cms.php script eine Funktion einbaue, die die Session auf login und passwort überprüft, dann funktioniert nichts mehr, dass heißt, ich werde immer auf die Seite admin.php umgeleitet.
Ich habe keinen Programmierfehler in der Abfrage der Session.
Ich habe festgestellt, dass die Variablen leer sind. Ich kann zwar mit session_is_registered() ermitteln ob die betreffende Variable vorhanden ist, was auch zutrifft, aber ich kann Sie nicht ausgeben.
Ich habe keine Änderungen in der PHP.ini vorgenommen, da anzunehmen ist, wenn ich den Session_namen und die Session_id in der URL übergebe, ich Zugriff auf die Variablen und deren Inhalt habe.
Wenn ich die Umleitung in der Admin.php ausschalte, d.h, nach dem Login auf die gleiche Seite verweise, dann bekomme ich Zugriff auf die Variablen, die übrigen in einem Array gespeichert sind.
session_start();
session_register("session");
function init_session($id, $login, $pass){
global $session;
$session[id] = $id;//Die ID des Users
$session[login] =$login;// Der Name des Users
$session[pass] =$pass;// Das Passwwort des U
$session[logged_in] = true;// Ein Flag
}
Ich redistriere also das Array session. In der Funktion speichere ich dann die übergebenen Variablen in diesem Array. Die Funktion wird aufgerufen, wenn der Login korrekto in admin.php war. Funktioniert wie gesagt auch.
Die Eingeloggt Funktion:
In dieser Funktion frage ich die User-Daten der Session ab, sodass sich nicht einfach jeder belibige User in das AdminMenü über den URL einloggen kann.z.B. www.Domain.de/admin_cms.php
In der Abfrageroutiene setze ich das Flag auf false, default true. Ich überprüfe dann die eingabe, also die angeblich übergebenen Variablen der Session, und werde prombt auf die login Seite, also admin.php zurück gewiesen, selbst mit dem Admin Passwort. Wenn alles stimmt, "sollte" das Script den logged_in Flag wieder auf true setzen und mich auf die Seite admin_cms.php überweisen.
Ich hoffe ich habe es verständlich genug ausgedrückt!
php123456
P.S.
Ich will keine Cookies verwenden! Die Daten sollen nur über den URL übergeben werden.
Kommentar