ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
240
240
EMPFEHLEN
-
22.02.08 18:45 #1
Hi,
ich hab eine komplette, umfangreiche PHP Internetseiten mit ingesammt 47 PHP Datein im Moment. Dies wollte ich klarstellen, weshalb ich hier auch keine/kaum Code Schnippsel veröffentliche, ich hoffe dass versteht ihr.
Also mein Problem ist, dass die Session "$_SESSION[ID]" bei mir nach dem ersten Link nachdem sie defeniert wurde überschreiben wird, und zwar immer zu "Default"?
Aber dies geschiet NUR auf dem Internetserver, nicht mit XAMPP. Das dies ein Serverproblem ist bezweifel ich, denn andere Session Einträge sind immer korrekt.
Die Seite die sich nach dem defenieren öffnet ist die erste Startseite wieder, und dort wird auch bis jetzt nicht mit Session gearbeitet.Logischerweise bin ich den Quellcode sehr oft durchgegangen, aber nirgendswo wurde die ID verändert.
Kennt jemand vielleicht das Problem? Es ist doch sicher kein Zufall das es immer zu "Default" wird?
-
Besitzt die Variable den Wert „Default“? Dann durchsuch doch einfach mal alle deine momentanen 47 PHP-Dateien nach diesem Wort. PHP verändert nämlich nicht einfach irgendwelche Werte.
Markus Wulftange
-
22.02.08 19:30 #3
"Logischerweise bin ich den Quellcode sehr oft durchgegangen, aber nirgendswo wurde die ID verändert."...
Abgesehen davon hab ich nicht einmal das Wort "Default" benutzt (engl. Standard). Seltsam ist das dieses Problem NUR auf den Server vorhanden ist. Ich arbeite mit XAMPP und lade das Ergebniss(ggf. angepasst) nur hoch.
-PHP Nicht, aber ggf. irgendwelche Sessions-Server Einstellungen?
-
Dann wirst du wohl das Verhalten deiner Anwendung in dem genannten Rahmen genau analysieren müssen.
Was wird denn überhaupt in genannten Variable gespeichert? Doch wohl nicht die Sitzungs-ID, oder?Markus Wulftange
-
22.02.08 19:47 #5
Nein, die User-ID.
Ich hab gerade etwas merkwürdiges entdeckt.
Während des Logins Verfahren wird die User ID als $_SESSION[ID] gespeichert.
Um den Fehler erstmal zu ignorieren hab ich jetzt einfach mal parallel den selben Wert in $_SESSION[SID] gespeichert, erstaunlich, auch dieser Wert wird sofort zu "Default" umgeändert? O.o
-
Und wo kommt der Wert her, der dieser Variable zugewiesen wird?
Markus Wulftange
-
22.02.08 19:58 #7
Aus der User-Datenbank

Aber der Wert stimmt, ich hab ihn (vorübergehend) gleich mit als Cookie gespeichert, und der ist immer richtig.
Intressant ist wohl auch, das anschließend nach der Defenierung, der Login in das Protokoll gespeichert wird mit der ID. Beim Ausloggen ebenfalls, dort aber immer nur "Default" steht.
-
Ist „ID“ das erste Element im $_SESSION-Array? Falls ja: speichere davor mal einen anderen Wert.
Markus Wulftange
-
22.02.08 20:13 #9
Ich kopier mal lieber den "Login" Abschnitt:
PHP-Code:if($Site == "Login")
{
//SQL Abfrage von "$users" wo der Benutzername dem eingegebenen Benutzernamen gleicht, wird als Array "$SQLUser" gespeichert.
$usernamesql = mysql_query("SELECT ID, Username, Nick, RealName, Password, Status FROM $users WHERE Username LIKE '$_POST[username]'");
$SQLUser = mysql_fetch_object($usernamesql);
//Uberprüfen ob Login richtig ist
if(isset($SQLUser->Username)
AND $SQLUser->Username == $_POST["username"]
AND isset($SQLUser->Password)
AND $SQLUser->Password == md5($_POST["password"])
AND $SQLUser->Status != "D")
{
//Sicherheits Informationen defenieren
$SecureID1 = rand(1000000,9999999);
$SecureID2 = rand(1000000,9999999);
$SecureIP = $_SERVER['REMOTE_ADDR'];
$time = time();
$SecureTime = date("H:i",$time);
$SecureSession = session_id();
//Sicherheits Informationen 'Zusammenkleben'
$Secure = "$SecureID1|$SecureID2|$SecureIP|$SecureTime|$SecureSession";
//Speichern einzelne Informationen in die Session
$_SESSION["Username"] = $_POST["username"];
$_SESSION["ID"] = 5;
$_SESSION["ID"] = $SQLUser->ID;
$_SESSION["Secure"] = $Secure;
$_SESSION["Status"] = $SQLUser->Status;
$_SESSION["Password"] = $_POST["password"];
//Sicherheits Informationen in die Datenbank speichern
$SQLsecure2 = "UPDATE $users SET Secure='$Secure', LastLogin='$time' WHERE Username LIKE '$_POST[username]'";
$SQLsecure = mysql_query($SQLsecure2);
//Sicherheits Informationen als Cookie speichern
setcookie("Secure", $Secure);
setcookie("ID", $SQLUser->ID);
//Login wird ins Protokoll geschreiben
$LoginZIP = new ZipArchive();
if ($LoginZIP->open("./Log/Login.zip", ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <Login.zip>\n");
}
$EintragNameZIP = $_SESSION["ID"] . "-" . time() . ".txt";
$EintragInhaltZIP = $_SESSION["ID"] . "|" . $_SESSION["Username"] . "|$ActDate|$ActTime|" . $_SERVER['REMOTE_ADDR'];
$LoginZIP->addFromString($EintragNameZIP, $EintragInhaltZIP);
$LoginZIP->close();
}
$Site = "Content/Login.php";
}
-
Was passiert denn mit den Sitzungsdaten auf den Folgeseiten?
Markus Wulftange
-
22.02.08 20:38 #11
Hi, mir wäre es lieber das etwas weniger öffentlich (Forum) anzugehen.
Die "Login.php" ist es nicht, da ich am ende sowie am anfang den korrekten Wert noch auslesen konnte.
Edit: Ich hab das Problem gelöst
mit ca. 70 SessionIDs Abfragen hab ich irgendwann die Quelle gefunden.
Geändert von Eagle-PsyX- (23.02.08 um 11:41 Uhr)
Ähnliche Themen
-
Auswahl wird ungewollt abgeschnitten!
Von schokolily im Forum PhotoshopAntworten: 14Letzter Beitrag: 14.04.10, 15:58 -
Verzeichnisstruktur wird ungewollt angezeigt
Von Psychodelics im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 04.01.10, 09:46 -
Session wird gelöscht?
Von Bernie33 im Forum PHPAntworten: 14Letzter Beitrag: 30.05.08, 22:41 -
ungewollt: Hand wird zum Pfeil auf Schaltfläche
Von Tixiland im Forum Flash PlattformAntworten: 4Letzter Beitrag: 18.12.05, 09:23 -
Variable nur überschreiben, wenn sie geändert wird.
Von alexanderneipp im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 15.01.03, 14:06





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren