• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Placeholder wird nicht gesetzt

Padarom

Neues Mitglied
Hallo,
ich habe aktuell ein kleines Problem mit PHP. Es sollen Daten beim Laden der Seite aus einer MySQL geladen werden, welche dann einmal als Banner angezeigt werden, und auch gleichzeitig
im Adminbereich (wenn man sich als "Admin" einloggt) als Platzhalter für die Inputboxen stehen. Das funktioniert beim Seitentitel, Eröffnungsjahr und der IP auch gut, allerdings nicht so beim Slogan.
Der wird nämlich garnicht ausgefüllt. Woanders auf der Seite wird der Slogan allerdings richtig angezeigt. Hier ist der Link zur Seite (Adminlogin ist "Admin", Passwort egal. Danach auf Adminseite klicken).
PHP:
<?php 
$res = mysql_query("SELECT * FROM UCP WHERE ID = 0");
$dsatz = mysql_fetch_assoc($res);
$name = $dsatz["Name"];
$from = $dsatz["Jahr"]; 
$slogan = $dsatz["Slogan"];
$art = $dsatz["Serverart"];
$ip = $dsatz["IP"];
?>

<input type="radio" name="art" value="Freeroam" <?php if($art == "Freeroam") { echo "checked"; }?>> Freeroam</input><br>
<input type="radio" name="art" value="Deathmatch" <?php if($art == "Deathmatch") { echo "checked"; }?>> (Team-)Deathmatch</input><br>
<input type="radio" name="art" value="Reallife" <?php if($art == "Reallife") { echo "checked"; }?>> Reallife</input><br><br>
<input type="text" name="servername" placeholder="<?php echo $name;?>" maxlength="24"><b> Servername</b><br>
<input type="text" name="serverslogan" placeholder="<?php echo $slogan;?>"><b> Slogan</b><br> // Das ist der fehlerhafte Teil
<input type="number" name="serveralter" placeholder="<?php echo $from;?>" min="2004" maxlength="4"><b> Eröffnungsjahr</b><br>
<input type="text" name="serverip" placeholder="<?php echo $ip;?>"><b> Server-IP</b>

Ich habe das Problem zwar jetzt gefunden (es lag daran, dass $slogan mehrere Hochkommata beinhaltete), aber wüsste gerne, wie ich dennoch solche Hochkommata setzen kann. Wenn ich Real Escape Strings (\") verwende, dann wird es im Header auch so angezeigt und sieht dementsprechend unschön aus.

Ich hoffe ihr könnt mir helfen.

Mit freundl. Grüßen
Padarom
 
Zuletzt bearbeitet:
Möglichkeiten gibt es viele, ich persönlich verwende an solchen Stellen

print <<<END

weil ich damit schon mal einen Satz Anführungszeichen weniger habe.
Etwa so:

Code:
print <<<END
[FONT=Courier New][COLOR=#000000][FONT=Courier New][COLOR=#000000]<input type="text" name="serverslogan" placeholder="[/COLOR][COLOR=#0000CC]$slogan[/COLOR][COLOR=#000000]"><b> Slogan</b><br>
[/COLOR][/FONT][/COLOR][/FONT]END;

Wenn du dann immer noch Anführungszeichen brauchst, kannst du die Variable noch in geschweifte Klammern setzen, etwa so:

Code:
[FONT=Courier New][COLOR=#000000]<input type="text" name="serverslogan" placeholder="{[/COLOR][COLOR=#0000CC]$array['name']->irgendwas}[/COLOR][/FONT][COLOR=#000000][FONT=Courier New]"><b> Slogan</b><br>[/FONT]
[/COLOR]

Ganz ohne Anführungszeichen geht es mit

Code:
[FONT=Courier New][COLOR=#000000]<input type="text" name="serverslogan" placeholder="[/COLOR][COLOR=#0000CC]<?php [/COLOR][COLOR=#006600]echo htmlspecialchars([/COLOR][COLOR=#0000CC]$slogan)[/COLOR][COLOR=#006600];[/COLOR][COLOR=#0000CC]?>[/COLOR][COLOR=#000000]"><b> Slogan</b><br>[/COLOR][/FONT]
 
Habe jetzt die Specialchars-Methode verwendet, danke. :)
Kleine Frage noch zum print <<<END - Geht das auch über mehrere Zeilen? Sodass ich ganze HTML-Abschnitte (z.B. 5 Inputboxen die nur angezeigt werden sollen, wenn eine Bedingung erfüllt wird) in PHP packen kann?

Mit freundl. Grüßen
Padarom
 
Zurück
Oben