ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
339
339
EMPFEHLEN
-
Hallo,
ich habe folgendes Problem und zwar wenn sich ein User einloggt, dann soll die Session gespeichert werden.
Das ist kein Problem, folgender Code funktioniert:
Aber die Sessions sollen erst gespeichert werden, wenn der User sich erfolgreich eingeloggt hat, also in Zeile 11, das Problem ist, das wenn ich die Zeile 3 und 4:PHP-Code://Einloggen
if ($_REQUEST['act'] == "login") {
session_register('username');
$_SESSION["user"] = $username;
$username=$_REQUEST['username'];
$password=md5($_REQUEST['passwort']);
$query = "SELECT COUNT(*) FROM users where username = '".$username."' and password = '".$password."'";
$login = mysql_fetch_array(mysql_query($query));
if ($login[0] > 0) {
echo "1";
} else {
echo "<font color='#FF0000'>Benutzername oder Passwort falsch!</font>";
}
}
in die if anweisung:PHP-Code:session_register('username');
$_SESSION["user"] = $username;
verschiebe, dann funktioniert das nicht mit der Session, also er speichert sie garnicht.PHP-Code:if ($login[0] > 0) {
Er speichert sie nur, wenn ich die zeile 3 und 4 dort lasse, wo sie sich gerade befinden.
Weiss jemand von euch, wieso das nicht funktioniert, wenn ich Zeile 3 und 4 in diese if anweisung:
verschiebe?PHP-Code:if ($login[0] > 0) {
Ich danke euch schonmal für die Hilfe.
MfG
-
Hallo,
ist ja ein seltsames Verhalten. Wird denn sonst das echo "1"; ausgegeben?
Ansonsten könnte ich mir nur vorstellen das das session_start() fehlt. Das wird auf jeder Seite wo du mit session arbeitest am Anfang benötigt.
gruss joe.
-
Danke Dir.
session_start(); befindet sich bei mir am anfang der Datei, ich hab ja nur ein Code ausschnitt von mir gepostet.
Ich hab ein Login-Script mit ajax geschrieben und wenn sich ein User einloggt, dann funktioniert es, nur wenn man die Seite wieder aktualisiert, dann ist die Session verschwunden.
echo "1" wird ausgegeben, ich hab es mit HttpFox gesnifft und gekuckt wie sich die daten verhält.
Über jquery öffne ich folgende Seite, wenn sich ein User einloggt:
und das wird dann ausgeführt in der PHP:Code :1 2 3 4 5 6 7 8 9 10
function login() { $.get('register/register.php', {act:'login', username:document.f.username.value, passwort:document.f.passwort.value}, function(data) { if (data == "1") { $("#regform").load("register/registerform.php?login=1"); } else { $('div#hs').html(data); } }); }
ich hab gleich die Zeile bis oben mit Kopiert, hier sieht man ja, das ich session_start(); verwende.PHP-Code:include('connect.php');
session_start();
//Einloggen
if ($_REQUEST['act'] == "login") {
session_register('username');
$_SESSION['user'] = $username;
$username=$_REQUEST['username'];
$password=md5($_REQUEST['passwort']);
$query = "SELECT COUNT(*) FROM users where username = '".$username."' and password = '".$password."'";
$login = mysql_fetch_array(mysql_query($query));
if ($login[0] > 0) {
echo "1";
} else {
echo "<font color='#FF0000'>Benutzername oder Passwort falsch!</font>";
}
}
Ich hab diesen Code von PHP mal in der Adresszeile getestet und mir ist aufgefallen, das wenn ich die SESSION an einer anderen Position verwende, z.B. ein Paar Zeilen runter, dann werden die SESSION gelöscht also die sind dann einfach nicht mehr da.
Wenn ich die SESSION an dieser Position lasse, dann werden die SESSION gespeichert, soetwas habe ich noch nicht erlebt.
Ich habe keine ahnung an was es liegen könnte.
Ich hoffe, dass mir jemand Weiterhelfen könnte
Danke schonmal.
MfG
-
Die Funktion session_register() ist veraltet und wird in keiner Weisse mehr empfohlen.
http://www.php.net/manual/de/functio...n-register.php
Dabei fällt mir auf du registrierst etwas anders als du nutzen willst.
$_SESSION["user"] müsste nun deinen $usernamen haben auch wenn du das ans Ende des scriptes setzt. Wo hingegen $_SESSION["username"] unnötig registriert wurde und dazu noch leer ist. Vieleicht daher die Probleme?PHP-Code:session_register('username');
$_SESSION["user"] = $username;
-
Danke Dir.
Irgendwie bleibt er jetzt die ganze Zeit eingeloggt, ich kann noch nicht einmal die SESSION löschen:
Der echo befehl wird ausgeführt, aber die SESSION lässt sich garnicht löschen, kann das nicht weiter testen, wenn ich die SESSION nicht mehr gelöscht bekomm.PHP-Code:if ($_REQUEST['act'] == "logout") {
unset($_SESSION['user']);
echo "Ausgeloggt";
}
Woran könnte das liegen?
Edit: Es geht wieder so wie vorher, er speichert einfach nicht die Session.
MfGGeändert von jackie05 (15.12.11 um 23:00 Uhr)
-
Um alle Session-Daten der Sitzung zu löschen, benutzt man session_destroy()
<?php
session_destroy();
?>
Dieser Befehl löscht alle Daten der Session.
Um eine einzelne Session zu deaktivieren, benötigt man unset
<?php
unset($_SESSION['user']);
?>
Dieser Befehl löscht die Werte für die Session-Variable user.
http://www.php-einfach.de/php-tutorial/php-sessions.php
Die Session selbst exitiert bei dir also noch nur das der Name nun nicht mehr drinnen ist. Je nachdem was falsch läuft kanns passieren das es direckt durch dein Script wieder gefüllt wird.
Anders gesagt es kommt drauf an wie geprüft wird ob man noch eingeloggt ist oder nicht. Oder wie dein Script weiterleitet falls die Session noch existiert.
-
15.12.11 23:03 #7
Versuch mal deinen Browsercache von möglichen Cookie-Leichen zu befreien, welche verhindern könnten, dass deine Session-ID gespeichert wird.
-
Danke euch.
Der Fehler lag ganz woanders, ich prüfe ja immer ob der User eingeloggt ist:
Wenn ja, dann kommt 1 zurück, wenn nein, dann die 0.PHP-Code:if ($_REQUEST['act'] == "check_login") {
if (!isset($_SESSION['user'])) {
echo "0";
} else {
echo "1";
}
}
Ich hatte es vertauscht gehabt, also so:
Damit ging es ja nicht, er hat dann immer 0 zurück gegeben, obwohl man eingeloggt war, deswegen ging es ja nicht, da ich ja bei den werten verschiedene Div Container lade, bei 0 = Loginformular, bei 1 = Willkommen Seite.PHP-Code:if ($_REQUEST['act'] == "check_login") {
if (!isset($_SESSION['user'])) {
echo "1";
} else {
echo "0";
}
}
Jetzt funktioniert es, trotzdem, vielen Dank für die Hilfe.
MfG
Ähnliche Themen
-
Probleme mit der Datenbankabfrage bei der Registrierung
Von LarsB im Forum PHPAntworten: 3Letzter Beitrag: 07.04.10, 00:38 -
$_SESSION[] Probleme
Von dg87 im Forum PHPAntworten: 2Letzter Beitrag: 08.10.07, 14:53 -
Probleme mit $_SESSION
Von zempsit im Forum PHPAntworten: 0Letzter Beitrag: 13.10.06, 21:23 -
$_SESSION-Problem
Von vaporizer im Forum PHPAntworten: 3Letzter Beitrag: 27.07.04, 21:50 -
$_SESSION und 2D-Array
Von Wolfsbein im Forum PHPAntworten: 2Letzter Beitrag: 14.02.03, 20:57





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren