• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit " in php-Script

kroe

Member
Hi,

folgendes Problem:
Aus einer Datenbank oder irgendwo anders her möchte ich einen Eintrag auslesen können und in ein Forumlarfeld übergeben:

z.B. echo "<input type=\"text\" name=\"egal\" value=\"$daten\">";

allerdings habe ich ein Problem, wenn ich in den $daten z.B. folgendes gespeichert habe:
er sprach:"hallo, du hast ein Problem mit den Anführungszeichen"

Dann müssen ersteinmlal mit addslashes die " maskiert werden (sonst erhält man eine Fehlermeldung), aber dann hört der Eintrag auch schon nach er sprach auf, da der Value-Wert mit dem " vor hallo, du ... abgeschlossen ist.

Wie kann man dieses Problem in den Griff bekommen, ohne dass man das " verbietet?

Viele Grüße
kroe
 

wenf

Hacker
echo "<input type=\"text\" name=\"egal\" value=\"";
echo $daten;
echo "\">";

oder

echo "<input type=\"text\" name=\"egal\" value=\".$daten."\">";


dann sollte es funktionieren
 

Snubnose

Hacker
^^^ das funktioniert nicht....
ersetze vorher die ' durch "
$daten = str_replace("'","\"", $daten); // ich eiss nicht ob ich ' oder \' machen muss
echo '<input type="text" name="egal" value="'.$daten.'">';

ich hasse die \"
die machen alles so unübersichtlich, deshalb verwende ich lieber '
 

wenf

Hacker
klar funktioniert das
den php speichert den Sting mit " in der Variable intern mit \"

nur der Browser interpretiert das falsch
also verwende doch


http://at2.php.net/manual/de/function.htmlspecialchars.php
 
OP
kroe

kroe

Member
wenf schrieb:
http://at2.php.net/manual/de/function.htmlspecialchars.php

Vielen Dank - das habe ich gesucht :))

Gruß
kroe

@Subnose: Danke fürs Mitdenken - das wäre zwar auch eine Lösung gewesen, aber dann hätte ich das gleiche Problem beim ' gehabt.
 

wenf

Hacker
na - ok - kann man nicht so pauschal sagen - hast du recht


habe gedacht.... wenn du hast mysql und einen Datensatz mit "" drinnen
dann bekommt php die variable mit \" gefüttert

wenn du aber
$test='mir is "sooo" faad'; verwendest, dann steht dort schon nur " und nicht \" drinnen

also - sorry wegen meiner falschaussage - hatte knoten im brain
war auf urlaub - und mein hirn hinkt noch ein bischen nach

ps. wetten könnte ich nicht - ich hab schon nichts mehr
 
Oben