Syntax Error

01/26/2014 15:48 callmax#1
[Only registered and activated users can see links. Click Here To Register...]

Bin ein totaler PHP Anfänger ^^.
01/26/2014 16:16 Gildarts'#2
$host = '\'.$_POST['host'].'\';
$user = '\'.$_POST['user'].'\';
$pass = '\'.$_POST['passwd'].'\';
$db = '\'.$_POST['db'].'\';


Ich bin mir nicht ganz sicher, aber sollte das nicht so aussehen?
01/26/2014 16:31 tolio#3
benutz einfach für den eigendlichen string " und für den string im string ' dann kannste dir das mit dem escapen sparen
01/26/2014 16:59 Muddy Waters#4
Quote:
Originally Posted by Gildarts' View Post
$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 View Post
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'].'\';
?' 
'>'