Quote:
Originally Posted by Gildarts'
$host = '\'.$_POST['host'].'\';
$user = '\'.$_POST['user'].'\';
$pass = '\'.$_POST['passwd'].'\';
$db = '\'.$_POST['db'].'\';
Ich bin mir nicht ganz sicher, aber sollte das nicht so aussehen?
|
Also rein syntaktisch ist dort kein Fehler vorhanden, tatsächlich wird das ganze durch deine Änderung falsch.
Quote:
Originally Posted by tolio
benutz einfach für den eigendlichen string " und für den string im string ' dann kannste dir das mit dem escapen sparen
|
Er möchte hier aber PHP-Code ausgeben, bei Double-Quotes müsste er ebenfalls die Dollar-Zeichen escapen. Beide Varianten sind nicht unbedingt elegant.
Zurück zum Thema:
Das Problem liegt hier vermutlich nicht in dem Code selbst, sondern in dem Syntax-Check, der vom PHP-Interpreter vor dessen Ausführung ausgeführt wird. Dabei wird der öffnende PHP-Tag (<?PHP) nicht als Teil des Strings, sondern in seiner Meta-Bedeutung interpretiert. Wenn man das so interpretiert, würde bereits direkt hinter $host ein einleitendes Hochkomma fehlen - das wäre ein Syntaxfehler und genau deshalb erhälst du die Fehlermeldung im Screenshot.
Du kannst das vermutlich umgehen, indem du den öffnenden und schließenden PHP-Tag zerlegst, sodass die Meta-Bedeutung entfällt.
Also in etwa:
PHP Code:
$content = '<' . '?PHP
$host = \''.$_POST['host'].'\';
$user = \''.$_POST['user'].'\';
$pass = \''.$_POST['passwd'].'\';
$db = \''.$_POST['db'].'\';
?' . '>';