PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : htmlspecialchars() Zeichen ausschließen die ausgeschlossen werden?


ca | Blade-IV
2005-01-05, 15:24:25
hu,

na das is doch ma ne schöne Formulierung: htmlspecialchars() Zeichen Ausschliesen die Ausgeschlossen werden ? :D.

Naja Spass beiseite (*schieb*).

htmlspecialchars() funktioniert ja super nur die wenn ich jetzt Text schreibe (Gästebuch) kommt das beim wieder Auslesen als Zusammenhängender Text raus, weil <br> mit umgewandelt werden... wie kann ich das umgehn ?! :)

Danke !

mfg,Alex.R.

clm[k1]
2005-01-05, 15:43:14
Ohne den quellcode deines guestbooks zu kennen, würde ich einfach mal sagen: nl2br NACH htmlspecialchars aufrufen! :wink:

Ich geh mal davon aus, das du htmlspecialchars auf den text anwendest bevor du den in die datenbank speicherst!

btw: rufst du das mit ENT_QUOTES auf? weil wäre IMO besser die hochkommas auch umzuwandeln!


gruß
clm[k1]

ca | Blade-IV
2005-01-05, 15:51:49
']Ohne den quellcode deines guestbooks zu kennen, würde ich einfach mal sagen: nl2br NACH htmlspecialchars aufrufen! :wink:

Ich geh mal davon aus, das du htmlspecialchars auf den text anwendest bevor du den in die datenbank speicherst!

btw: rufst du das mit ENT_QUOTES auf? weil wäre IMO besser die hochkommas auch umzuwandeln!


gruß
clm[k1]

Äh wie nl2br Nach Htmlspecialchars ?! Wie was tun ?! oO :)

HIer mal der Code denn es betrifft:


if($_POST['titel']=="" OR $_POST['text']=="" OR $_POST['name']=="")
{

echo "<span class='warning'><center>Bitte alle Pflichtfelder ausfüllen.</center></span><br><br>";
}
else
{

$titel_string = "".$_POST['titel']."";
$titel_string = htmlspecialchars($titel_string);

$text_string = "".$_POST['text']."";
$text_string = htmlspecialchars($text_string);

$name_string = "".$_POST['name']."";
$name_string = htmlspecialchars($name_string);

$mail_string = "".$_POST['mail']."";
$mail_string = htmlspecialchars($mail_string);

$site_string = "".$_POST['site']."";
$site_string = htmlspecialchars($site_string);

$sql="INSERT INTO `guestbook` (`id`, `titel`, `text`, `name`, `mail`, `site`, `time`, `ip`) VALUES ('', '".$titel_string."', '".$text_string."', '".$name_string."', '".$mail_string."', '".$site_string."', '".$time."', '".$ip."')";
mysql_query($sql) OR die(mysql_error()."<br> Error - guestbook.php (2).");
}


mfg,Alex.R.

clm[k1]
2005-01-05, 16:55:32
Das sieht soweit in ordnung aus...

aber dann hast du wahrscheinlich noch überhaubt kein nl2br() (http://www.php.net/manual/de/function.nl2br.php) verwendet.

das musst du dann bei der ausgabe tun.

oder du machst es nachdem du htmlspecialchars angewendet hast - dann werden die zeilenumbrüche als "<br/>" mitgespeichert und du kannst den text direkt ausgeben!


gruß
clm[k1]

ca | Blade-IV
2005-01-05, 17:23:30
']Das sieht soweit in ordnung aus...

aber dann hast du wahrscheinlich noch überhaubt kein nl2br() (http://www.php.net/manual/de/function.nl2br.php) verwendet.

das musst du dann bei der ausgabe tun.

oder du machst es nachdem du htmlspecialchars angewendet hast - dann werden die zeilenumbrüche als "<br/>" mitgespeichert und du kannst den text direkt ausgeben!


gruß
clm[k1]

Ok versteh ich das jetzt richtig: Den htmlspecialchars einfach nochmal on nl2br packen und das sollte funzen ?!

Also so in etwa:


$varstring="BLA";
$varstring=htmlspecialchars ($varstring);
$varstring=nl2br($varstring);

ca | Blade-IV
2005-01-05, 17:37:22
Stop ne mein Fehler......

wenn ich htmlspecialchars rausmach macht er mir den text trotzdem als ein block rein... wie kann ich das machen wenn ich was schreib das er mir wenn ich enter drück für ne neue Zeile das mit nimmt ?!

da kannstes dir ma anschaun...

http://Blade-IV.de/?id=6

Gil-galad
2005-01-05, 18:08:03
wie kann ich das machen wenn ich was schreib das er mir wenn ich enter drück für ne neue Zeile das mit nimmt ?!

Also ich mach es so: $titel_string=ereg_replace("\n", "<br />", $titel_string);

Damit ersetzt er \n (also wenn Du Enter gedrückt hast) durch nen <br />. Funzt bei mir problemlos.

clm[k1]
2005-01-05, 18:57:32
Also ich mach es so: $titel_string=ereg_replace("\n", "<br />", $titel_string);

Damit ersetzt er \n (also wenn Du Enter gedrückt hast) durch nen <br />. Funzt bei mir problemlos.

nl2br macht genau das!!!111einseins

vielleicht sollte man sich die links die ich hier poste auch mal durchlesen:
http://www.php.net/manual/de/function.nl2br.php


gruß
clm[k1]

Gil-galad
2005-01-05, 19:21:11
']nl2br macht genau das!!!111einseins

vielleicht sollte man sich die links die ich hier poste auch mal durchlesen:
http://www.php.net/manual/de/function.nl2br.php


gruß
clm[k1]

Wieso musst Du gleich so agressiv werden? Ich weiss das n2lbr das auch kann !!!!!eineinseinseinseins :P

Ich wollte Ihm nur noch eine 2. Möglichkeit aufzeigen.

clm[k1]
2005-01-05, 19:34:57
Wieso musst Du gleich so agressiv werden? Ich weiss das n2lbr das auch kann !!!!!eineinseinseinseins :P

Ich wollte Ihm nur noch eine 2. Möglichkeit aufzeigen.

Das war nicht agressiv gemeint!

Ich habs glaube irgendwo schon mal geschrieben: wenns böse/agressiv gemeint gewesen wäre, hätte ich einen entsprechenden smily dahinter gemacht!

Nur weil ich nicht hinter jeden satz ein :rolleyes: , :biggrin: , :D , ;) , :) oder :wink: setze heißt das nicht automatisch das ich es böse meine! :tongue:

mal davon abgesehen hab ich dich damit gar nicht gemeint, sondern ca | Blade-IV, da ich den link schon ein paar posts weiter oben angegeben hab.


gruß
clm[k1]

MadMan2k
2005-01-05, 23:33:03
Wieso musst Du gleich so agressiv werden? Ich weiss das n2lbr das auch kann !!!!!eineinseinseinseins :P

Ich wollte Ihm nur noch eine 2. Möglichkeit aufzeigen.
du weißt aber schon, dass das so ziemlich die schlechteste Möglichkeit ist sowas zu machen? :rolleyes:

Nicht nur, dass preg_replace deutlich schneller ist, nein du schmeisst für etwas die Regex engine an, was genausogu mit einem simplen str_replace geht... ;)

Gast
2005-01-06, 11:55:18
du weißt aber schon, dass das so ziemlich die schlechteste Möglichkeit ist sowas zu machen? :rolleyes:

Nicht nur, dass preg_replace deutlich schneller ist, nein du schmeisst für etwas die Regex engine an, was genausogu mit einem simplen str_replace geht... ;)

Ich ersetze ja nicht nur \n durch <br /> sondern auch noch andere Sachen. Von daher läuft die Engine schon ;)

ca | Blade-IV
2005-01-06, 14:10:39
Danke mal ! Ich muss allerdings los auf LAN kanns frühestens Monatg abend mal testen !

Ich meld mich dann nochmal :)

mfg,Alex.R.

Gil-galad
2005-01-06, 15:32:40
Ich ersetze ja nicht nur \n durch <br /> sondern auch noch andere Sachen. Von daher läuft die Engine schon ;)

^
moi