PHP html im Gästebuch anzeigen

Default

Standard
ID: 264299
L
1 Dezember 2006
1.272
136
Hallo,

diesmal bin ich hier hoffentlich richtig :)

Ich habe nun nen Gästebuch zusammengedichtet (bei mir kann man das so sagen...) und wenn man html-code eingibt wird dieser ausgeführt.

Ich hab mittlerweile verschiedene Möglichkeiten gefunden das zu verbieten, aber ich möchte gerne das alles genau so angezeigt wird wie es eingegeben wurde.

Also wenn einer nen Codeschnipsel reinschreibt, das der auch angezeigt wird.

Ist das überhaupt möglich?

greez
Default
 
Ich weiß nicht genau...

Also ich möchte nicht das einer nen code schreibt und z.B. die eckigen Klammern als < und > dargestellt werden, sondern das sie auch als eckige Klammern dargestellt werden. Nur soll kein code ausgeführt werden.

Ich verstehe die recht spartanische Anleitung in deinem Link auch nicht wirklich... bin leider völliger noob :(


greez
Default
 
Naja, > wird durch Deinen Browser im Allgemeinen ja genau zu der eckigen Klammer > und das ist doch genau das, was Du willst. Ein Zeichen anzeigen, das der Browser normalerweise als Steuerzeichen interpretieren würde.

Genau das übernimmt htmlentities() äußerst bequem für Dich. Die relevanten Zeichen werden durch die sogenannte Entität ersetzt (das ist halt einfach ein Code, der für das Zeichen steht) und der Browser zeigt es dadurch an anstatt es verarbeiten zu wollen.

Beispielcode zur Anwendung:
PHP:
<?php
  $foo = '<ich will="genauso">ausgegeben</werden>';
  echo htmlentities($foo);
 
Ah ja cool, danke!
Dann ist es genau was ich gesucht hab, nur eine Frage dann noch: Wie setze ich das ein wenn ich schon nl2br davor stehen habe.

Also so wie ich das sehe müsste ich das so schreiben (beim anzeigen):
PHP:
<?php echo htmlentities($eintrag);?>

Aber es steht ja schon:
PHP:
<?php echo nl2br($eintrag);?>

Wo soll ich jetzt noch mit dem "htmlentities" hin?


thx
Default
 
Ganz genau, Funktionen lassen sich problemlos verschachteln:
PHP:
 <?php echo nl2br(htmlentities($eintrag)); ?>
 
Hmm, ich hab genau deinen Code genommen, die Zeichen funktionieren einwandfrei :)

Danke euch beiden für eure Hilfe,
Default
 
Sry für den Doppelpost, aber mir ist grade noch was aufgefallen.
Damit die Beiträge nicht ewig lang werden habe ich wordwrap benutzt, das alle 75 Zeichen einen Umbruch einfügt.
PHP:
$eintrag = wordwrap($ausgabe['text'], 75,"<br>")

Aber das htmlentities() schlatet scheinbar das <br> vom wordwrap aus :(

Hat vlt noch jemand eine Idee wie ich das lösen kann? Kann man vlt als Ausnahme <br> angeben oder sowas? Weil damit kann ja keiner was böhses anfangen...

greez
Default

/EDIT:

Ich hab das jetzt so gelöst und es funktioniert im Prinzip:
PHP:
$eintrag = wordwrap($ausgabe['text'], 75, "/n/n", true);

Aber sieht bisschen blöd aus, denn am Zeilenende und am nächsten Anfang steht jeweils einmal /n
Vlt hat jemand ne Idee (och der ich finde es noch raus via google) wie man das wegbekommt.
 
Zuletzt bearbeitet:
Ich hab das jetzt so gelöst und es funktioniert im Prinzip:
PHP:
$eintrag = wordwrap($ausgabe['text'], 75, "/n/n", true);

Aber sieht bisschen blöd aus, denn am Zeilenende und am nächsten Anfang steht jeweils einmal /n
Vlt hat jemand ne Idee (och der ich finde es noch raus via google) wie man das wegbekommt.

Guck mal ganz genau in die Doku. Da steht bestimmt nicht /n, sonder \n. Das ist ein kleiner Unterschied ;)
 
argh verdammt :( Wie oft ich schon klammern oder semikola vergessen habe kann ich auch nicht zählen, obwohl ich erst ein paar Tage an php rumdocktor...

Danke dir :)