SERVER-Variable wird nicht gespeichert

lisali

Erfahrenes Mitglied
Hallo!

Die Variable $_SERVER['QUERY_STRING'] wird irgendwie nicht in meine Datenbank gespeichert.
Code ist folgender:

PHP:
mysql_query("UPDATE users SET query='".$_SERVER[QUERY_STRING]."',time=NOW() WHERE id='".$_SESSION['user_id']."'");

Komischerweiße wird jedoch der Wert time gespeichert... also funktioniert der Befehl an sich.
Außerdem wird auch der korrekte Wert vom Querystring ausgegeben, wenn das schreibe:
PHP:
echo $_SERVER['QUERY_STRING'];

Woran kann das liegen?

Liebe Grüße,

Lisa
 
Mich wundert, das du keine Notification bekommst "undefined index QUERY_STRING". Versuch mal folgendes:

PHP:
mysql_query("UPDATE users SET query='".$_SERVER['QUERY_STRING']."',time=NOW() WHERE id='".$_SESSION['user_id']."'");
 
Danke für deine Antwort.

Genau das habe ich davor auch schon probiert. Das geht leider nicht. Warum undefined? Die Variable ist doch immer vordefiniert?

LG
 
Mir ist nicht bekannt, das es das Define QUERY_STRING gibt. $_SERVER ist ein assoziatives Array, welches durch alpha-numerische Indizes angesprochen wird.

PHP:
$array[element1]

ist nicht das gleiche wie

PHP:
$array['element1']

Allerdings muss ich zugeben, dass mir bei den vordefiniertes Indizes nicht sicher bin, ob es dafür nicht doch auch defines gibt.

Andere Frage: Hast du mal das error_reporting eingeschaltet und display_errors so gesetzt, das Fehler und Notices auch im Browser angezeigt werden?
 
Ja, habe ich eben mal angeschaltet. Ich finde jedoch keinen Hinweis auf mein Problem.

Das komische ist ja wie gesagt, dass der SQL-Befehl funktioniert, da er ja die Spalte "time" aktualisiert. Deshalb dachte ich, dass es wohlmöglich was mit dieser Server-Variable zu tun haben muss... nur weiß ich leider nicht was genau.

LG
 
Ich bin jetzt endlich auf das Problem gestoßen. Ich habe in einer includeten Datei den Befehl ausgeführt.
Ich habe nämlcih eine index.php und in der config.php wird der Befehl ausgeführt. Warum genau die Ausgabe mit echo trotzdem der aktuelle String der index.php Datei richtig ist, kann ich mir leider nicht erklären!?

Gibt es denn irgendeine Möglichkeit, dass selbst in der includeten config.php der String der index.php übernommen werden kann?

LG
 
Ich bin jetzt endlich auf das Problem gestoßen. Ich habe in einer includeten Datei den Befehl ausgeführt.

Wenn ich das richtig verstehe gehst du davon aus, dass $_SERVER['QUERY_STRING'] in der Datei config.php nicht mehr vorhanden, bzw. anders ist, als in der index.php, da diese später lediglich eingebunden wird?
Das ist leider falsch, auch in der config.php ist der QUERY_STRING der selbe, der ändert sich ja nicht. Includes arbeiten auf Dateisystem-Ebene, nicht per HTTP.

Aber mal was anderes:
Kann es sein, dass das Wort "query" ein von MySQL bereits reserviertes Wort ist?
Schreibe es einfach mal wie folgt:
PHP:
mysql_query("UPDATE users SET `query`='".$_SERVER['QUERY_STRING']."',time=NOW() WHERE id='".$_SESSION['user_id']."'");
 
Zurück