Onko lyhyttä tapaa lisätä textareakenttään (tekstikenttään) html-koodia, eli kuten monissa näkemissäni keskustelufoorumeilla saa lisättyä hymiöitä painamalla nappia. Tehtävänäni olisi pystyä lisäämään ainakin rivinvaihtokoodi tekstikenttään, koska teksti lähetetään tietokantaan ja tulostetaan sivuilleni sellaisenaan, olisi hyvä, että sivujeni käyttäjät saisivat asetella tekstiään. Toivoisin, että javascriptin käyttö olisi vähäistä sivuillani, jos muuta ratkaisua ei löydy, JS:kin käy.
Siis haluat ettei käyttäjän viesti mene "sekaisin" koska he eivät osaa laittaa <br> koodia rivinvaihtojensa tilalle? Ratkaisu: Korvaa rivinvaihto <br>:llä käyttämällä PHP:tä:
$viesti = str_replace("\r\n", "<br>", $viesti);
Tietokantaan muutenkin kannattaisi ottaa mahdollisimman vähän muotoiltua tekstiä, sillä jos jossain vaiheessa viestejä pitäisi näyttää vaikka .exe -ohjelmassa tai XHTML-standardi pistetään kertaheitolla uusiksi, ei tule kuin suru puseroon.
Ohessa hieman listaa mitä kannattaa tehdä:
1. Esikatselussa ajaa kaikki käyttäjältä tulevat syötteet nl2br(htmlentities(stripslashes($_POST['kenttä']
2. Tietokantaan ajaessa varmistaa data mysql_real_escape_string(stripslashes($_POST[
3. Datan esittelyvaiheessa ajaa esiteltävä teksti nl2br($Kyselydata['Kenttä']) läpi jolloin rivinvaihdot muuttuu _esittelyvaiheessa_ <br /> -tageiksi
Agony kirjoitti:
nl2br($Kyselydata['Kenttä']) .. jolloin rivinvaihdot muuttuu _esittelyvaiheessa_
-tageiksi
nl2br ei poista rivinvaihtoja, vaan lisää rivinvaihtojen taakse <br />-tagin.
Jepjep, kannattaa välttää tuota nl2br funktiota, tulee turhia yllätyksiä vain.
Kyllä mulle kelpaa rivinvaihdotkin, selkeämpi lähdekoodi.
nl2br on huomattavasti pätevämpi kuin \r\n korvaus:
1. Linux-rivinvaihdot (\n) saa <br />
2. Mac-rivinvaihdot (\r) saa <br />
3. Windows-rivinvaihdot (\r\n) saa <br />
4. Windows-rivinvaihdot ei saa kahta <br />
Toki voi viritellä oman preg_replace patternin joka tekee saman asian, mutta skripti on aina hitaampi kuin alustalle käännetty funktio.
Funktio str_replace esimerkiksi ottaa syötteekseen myös taulukon, jolloin muuttaminen onnistuu kätevästi ja on nopeampi kuin säännölliset lausekkeet. Mutta toki jos haluaa nuo rivinvaihdot br-tagien oheen, niin sitten kannattaa käyttää nl2br-funktiota.
Aihe on jo aika vanha, joten et voi enää vastata siihen.