MyBB.de Forum
[PHP] Leere Ersetzung einer Variable - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: [PHP] Leere Ersetzung einer Variable (/thread-25694.html)



[PHP] Leere Ersetzung einer Variable - Falkenauge Mihawk - 27.05.2012

Moin zusammen

Heute habe ich das Phänomen erlebt, dass eine Variable in einem MySQL-Query nicht korrekt durch PHP ersetzt wird. Wenn man die Variable vorher ausgibt, wird die Ausgabe korrekt ausgegeben.

Beispiel:
PHP-Code:
$sql $connection->insert("guestbook""`date`, `name`,
`email`, `active`, `ip`, `message`"
"'$date', '$name', '$email',
'
$activation', '$ip', '".$connection->real_escape_string($message)."'"); 

Hier wird $message durch Nichts ("") ersetzt. Gibt man $message vorher aus, bekommt man korrekt den Inhalt von $_POST['message'] ausgegeben.

Wenn man jetzt anstatt $message $_POST['message'] nimmt, wird der Inhalt auch korrekt in die DB eingetragen.

Die Frage stellt sich, wie kann man sich das Phänomen erklären?


RE: [PHP] Leere Ersetzung einer Variable - BroatcasT - 18.06.2012

Befindet sich alles in einer function? Muss vll global was übergeben werden?


RE: [PHP] Leere Ersetzung einer Variable - Falkenauge Mihawk - 22.06.2012

Nein, ist keine Funktion.


RE: [PHP] Leere Ersetzung einer Variable - Raphael - 19.07.2012

Einfachster Fall: Die Variable wird nicht (korrekt) übergeben.
Zwei typische Fehler:

1. Man verwendet (versehentlich) den Vergleichsoperator (==)

2. Man verwendet vorher in einem If-Statement nur ein einfaches Gleichheitszeichen

3. Schreibfehler beim setzen von $message

Ansonsten - wann genau hast du denn Testweise $message einmal ausgegeben?

MfG
Raphael


RE: [PHP] Leere Ersetzung einer Variable - Falkenauge Mihawk - 23.07.2012

Direkt vor dem Query. Aber das Problem hat sich gelöst. Anscheinend hat register_globals dieses Phänomen ausgelöst.


RE: [PHP] Leere Ersetzung einer Variable - Jockl - 23.07.2012

Dann setze ich das mal auf "erledigt"....