Autor Zpráva
spliR
Profil *
Zdravím, našel jsem si tu řešený php kód pro vložení komentáře pod článek, funguje to, nicméně to má jednu vadu - ignoruje to písmeno "n". V php jsem začátečník, ale podle násedujícího úryvku z kódu:

file_put_contents($cesta_souboru, str_replace("n","",htmlspecialchars($_POST['jmeno'])).$delimeter. str_replace("n","",htmlspecialchars($_POST['email'])).$delimeter. str_replace("n","",(htmlspecialchars($_POST['text'])))."n", FILE_APPEND); 

to nhrazuje právě znak "n" prázdnou mezerou, tudíž se nikde "n" nezobrazí. Jak to napravit a vyhnout se tomu, že se mi pak bude výsledný komentář odřádkovávat? (právě kvůli php odřádkování pomocí n).

Tušíte někdo ?

Mockrát děkuju.
juriad
Profil
spliR:
Nebylo tam náhodou "\n" všude místo "n"? Pak by to mohlo fungovat, byť toto není nikterak pěkně řešené.
spliR
Profil *
Ne, nebylo. To nic neřeší. Přeci "n" se přepisuje dle kódu na " ". Když místo mezery doplním zase "n", tak se všechno odřádkovává, když to tam vůbec není tak to má stejný efekt...
juriad
Profil
"\n" je zalomení řádku, "n" je písmeno n. To zpětné lomítko tam má smysl. Účelem je zrušit všechna odřádkování, aby se nijak neporušil formát toho souboru.
Nepřepisuje se na mezeru, přepisuje se (v tvém kódu) na nic "".
spliR
Profil *
takže to má prosím vypadat jak ?
Fisir
Profil
Reaguji na spliRa:
Všude místo n bude \n.
file_put_contents($cesta_souboru, str_replace("\n","",htmlspecialchars($_POST['jmeno'])).$delimeter. str_replace("\n","",htmlspecialchars($_POST['email'])).$delimeter. str_replace("\n","",(htmlspecialchars($_POST['text'])))."\n", FILE_APPEND);
spliR
Profil *
To jsem původně zkoušel, nicméně jsem si o pár řádků níže nevšíml, že je tam ještě $rozdeleni_radky=explode("n",$komentare);

takže stačilo připsat lomítko i tam a už to funguje. Díky moc!
juriad
Profil
spliR:
Dej odkaz na původní stránku, kde jsi to našel. Možná, že jsi o to lomítko přišel omylem při kopírování do svého editoru nebo došlo k nějaké chybě tady na diskusi.
spliR
Profil *
Původní článek

ta lomítka tam skutečně nejsou.
juriad
Profil
OK. Nejsou v té poslední verzi, ale v těch předchozích jsou.
Mimochodem, je otázkou, zda je vhodné do do souboru ukládat komentáře po prohnání funkcí htmlspecialchars, nebo tuto funkci volat až při výpise.
Druhá možnost má tu výhodu, že v souboru jsou původní data, což může být důležité v případě, že bys s nimi chtěl dělat něco jiného než jen vypsat v HTML stránce. Kdybys je chtěl poslat e-mailem, tak htmlspecialchars nemá smysl, naopak komentář může poškodit.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: