PHP szövegmező sorok tördelése?
Van egy vendégkönyvem, és ugyebár a hozzászólást egy szövegmezőn (textarea) keresztül lehet elküldeni. Nos, az a gondom, hogy ugyebár ha gépelsz valamit a szövegmezőbe akkor automatikusan új sorba ugrik, ha a textarea végéhez érsz, viszont nem töri el. Csak úgy menti el az adatbázisba a tördelt sorokat, ha a textareanak megadom a wrap="hard" attríbútumot, de ez könnyen manipulálható, pl. elküldés előtt kiveszi a hacker pisti ezt. Egyébként azért kell a sortörés mert amikor megjeleníti a kommentet és nincs eltörve, akkor széthúzza az egész weboldalt, egy sorban lesz az egész komment. Még ezt próbáltam, de valamiért nem jó ha már elküldés előtt nincs wrap:
$outcomment = $items["text"];
if(strlen($outcomment)>60){
echo wordwrap($outcomment,60,"<br>\n");
} else {
echo $outcomment;
}
PHP
<?php echo nl2br($szoveg); ?>
Nem lehet, hogy
a.) valamilyen kód a tárolás vagy kiíratás előtt a sima szóközöket nem törhető (& nbsp;) szóközre cseréli?
b.) a kiíráskor a doboz (div/p/span/akármi konténer) amibe a szöveg kerül tartalmaz egy "white-space: nowrap;" css formázást? Ez ugyanis nem tördelhetővé teszi a szöveget.
Nézz utna, mert elvileg a kijelzett szöveg is automatikusan tördelődik, ha egy normális konténerbe kerül.
#1 megoldása a textarea-n belüli sortörések átalakítására vonatkozik. Kijelzés előtt azt is érdemes használni.
$chars = array( "&", "<", ">", "|");
$entities = array("&", "<", ">", "|");
$comment = str_replace($chars, $entities, $comment);
Csak ez van
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!