kills Geschrieben 2. Februar 2004 Teilen Geschrieben 2. Februar 2004 hi leute, ich hab hier ne site und verwende darauf sessions. folgende funktion: function getUserSettings () { global $db, $_TABLE, $_SESSION; // Alle User Settings aus der User und der Session Tabelle auslesen und in die Session speichern $iQueryId = $db->query( "select * from ". $_TABLE["user"] .", ". $_TABLE["session"]. " where ". $_TABLE["user"] .".user_id=". $_TABLE["session"]. ".user_id and ". $_TABLE["user"] .".user_id='". $_SESSION["user_id"] ."'"); while ( $aResult = $db->fetchArray( $iQueryId)) { foreach ( $aResult as $sFieldName => $sFieldValue) { $_SESSION[ $sFieldName] = $sFieldValue; } } } [/PHP] in dieser funktion möchte ich alle daten aus den beiden tabellen in meine session reinschreiben! Nur leider wenn ich auf meine nächste seite weitersurfe, dann hat er die variablen nicht mehr in der session gespeichert! diese sehe ich mit folgender Funktioion [PHP] Session Variablen:<br> <?php foreach ( $_SESSION as $sVarName => $sVarValue) { echo "Name: <b>". $sVarName ."</b>, Wert: <b>". $sVarValue ."</b><br>\n"; } ?> also wenn ich diese funktion oben aufrufe dann geht alles wie es sein soll. jeder session variable ist mit den richtigen werten gefüllt ( laut den ausgaben des scripts s.o.) wenn ich nur aber auf nen link drücke den ich auf der seite habe und rufe dann wieder dieses scirpt (s.o.) auf, dann sind meine session variablen wieder leer! wenn ich mir meine cookie variablen ausgebe, dann ist auf jeder seite das cookie mit der session id vorhanden!!! bin ich nur zu blöd oder warum geht das nicht?! danke + gruss, kills Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Deagle--Knight Geschrieben 2. Februar 2004 Teilen Geschrieben 2. Februar 2004 <? session_start (); // Starte eine Session ?> haste das am anfang der 2 seite benutzt ? muss vor allem anderem stehen ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 2. Februar 2004 Autor Teilen Geschrieben 2. Februar 2004 ja das hab ich drinne. sonst würde er doch das $_SESSION array nicht füllen könne oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Deagle--Knight Geschrieben 2. Februar 2004 Teilen Geschrieben 2. Februar 2004 das array existiert dann garnicht erst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 3. Februar 2004 Autor Teilen Geschrieben 3. Februar 2004 also mir kommt das so vor, als würde das super globale array ( $_SESSION) nicht gefüllt werden. irgendwie füllt der mir in den funktionen nur ein lokales/globales array?! weiss jmd warum?! so starte ich mein script: require( "config.php"); session_name( $_CONFIG["session_name"]); session_start(); $sSessionId = session_id(); [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 3. Februar 2004 Autor Teilen Geschrieben 3. Februar 2004 es muss irgendwie an dieser funktion liegen: // Session-Daten in die DB schreiben ( für WhoIsOnline usw.) function session_pagestart( $sSessionId, $sSection) { global $db, $_TABLE; // Prüfen ob die Aktuelle Sessin gültig ist! session_validate(); $sRemoteIp = $_SERVER["REMOTE_ADDR"]; $iQueryId = $db->query( "select user_id from ". $_TABLE["session"] ." where session_id='". $sSessionId ."'"); if ( $aResult = $db->fetchArray( $iQueryId)) { // Session Daten Updaten $iQueryId = $db->query( "update ". $_TABLE["session"] ." set section = '". $sSection ."', client_ip='". $sRemoteIp ."' where session_id='". $sSessionId ."'"); } else { // Session Daten anlegen $iQueryId = $db->query( "insert into ". $_TABLE["session"] ." set section = '". $sSection ."', client_ip='". $sRemoteIp ."', session_id='". $sSessionId ."'"); } } function session_validate () { global $db, $_TABLE, $_SESSION; // Session eingeloggt? if ( isset ( $_SESSION["username"]) && isset ( $_SESSION["password"])) { $iQueryId = $db->query( "select user_id from ". $_TABLE["user"]. " where username='". $_SESSION["username"] ."' and password='". $_SESSION["password"] ."'"); // User vorhanden? if ( $aResult = $db->fetchArray( $iQueryId)) { // Passt die eingeloggte User_id zu der User_id in der DB? if ( $aResult[ "user_id"] != $_SESSION["user_id"]) { error( 10); } } else { error( 10); } } } [/PHP] weil das geht: [PHP] if ( $show == "members") { $_SESSION["testvar"] = 12; } session_pagestart( $sSessionId, $show); und so gehts nicht: session_pagestart( $sSessionId, $show); if ( $show == "members") { $_SESSION["testvar"] = 12; } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 3. Februar 2004 Autor Teilen Geschrieben 3. Februar 2004 ich hab den fehler gefunden!!! geht: function testfunction () { $_SESSION["test"] = 1; } [/PHP] [b]geht nicht:[/b] [PHP] function testfunction () { global $_SESSION; $_SESSION["test"] = 1; } komischerweise wenn ich die Super globale variable $_COOKIE nehme, dann gehen beide varianten!,,.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.