Autor | Zpráva | ||
---|---|---|---|
sitole Profil |
Dobrý den, dřível jsem hledal možnost tvorby vlastních komentářů.
Všechno fungovalo dokonale! Ale když dá uživatel ENTER (tedy chce napsal na další řádek) Vympíše se kod asi takto Jmeno: Johanka Email: johankaprogramatorka@phpjeslozite.html Text: Ahoj, opravdu super web Jmeno: Ale budeš potřebovat opravit ten komentář :D Email: Text Komentáře jsem přetvořil z jedné diskuse. VIZ PHP komentáře pod článek Jak tento problém vyřešit? Můj kod na webu <p style="padding-left:183px"><?php $delimeter="/*f1f*\\"; // delimeter můžeš ponechat $cesta_souboru="log.txt"; // cesta k souboru TXT, do kterého se budou daný komentáře ukládat $umisteni_scriptu=""; //umístění tohoto souboru if(isset($_POST['komentar'])){ //pokud kliknou na odeslat tak se to začne zpracovávat if(!in_array("",array($_POST['jmeno'],$_POST['email'],$_POST['text']))){ //zkontroluje, zda vyplnili všechny položky $soubor=file_get_contents($cesta_souboru); // načtu si soubor s předchozíma komentářema $zapis=$soubor."\n".$_POST['jmeno'].$delimeter.$_POST['email'].$delimeter.$_POST['text']; //přidám starý text + si dám delimetr mezi jednotlivé nové stringy file_put_contents($cesta_souboru, $zapis); //přepíšu soubor } else { echo "<b>Nemáte zadané všechny hodnoty.</b><br>"; // pokud nejsou zadané všechny hodnoty, vypíše to tuto hlášku } } $komentare=file_get_contents($cesta_souboru); // načtení souboru do proměnné $rozdeleni_radky=explode("\n",$komentare); // rozdělení dle řádků => na jednotlivé příspěvky if(count($rozdeleni_radky)!=0){ // pokud je v něm víc jak jeden komentář for($i=0;$i<count($rozdeleni_radky);$i++){ // cyklus, pro všechny komentáře $roztrzeni=explode($delimeter,$rozdeleni_radky[$i]); // roztržení dle delimetru $koment=array("jmeno" => $roztrzeni[0] , "email" => $roztrzeni[1], "text" => $roztrzeni[2]); // pro hezčí vypisování přidáno do array echo "<p style=;padding-left:183px;><b>Jmeno:</b> ".$koment['jmeno']."<br>"; // jednoduché vypsání echo "<p style=;padding-left:183px;><b>Email:</b> ".$koment['email']."<br>"; echo "<p style=;padding-left:183px;><b>Text:</b> ".$koment['text'].""; echo "<p style=;padding-left:183px;></br>"; } } else { echo "Nebyl zatím zadán žádný komentář"; // vypsání hlášky, že zatím nebyl zadán žádný komentář } ?> |
||
Tori Profil |
#2 · Zasláno: 5. 12. 2014, 15:43:18
|
||
sitole Profil |
#3 · Zasláno: 5. 12. 2014, 21:26:02
Asi jsem to trošku nepobral..
Co tedy budu musez upravit :) |
||
Fisir Profil |
#4 · Zasláno: 6. 12. 2014, 15:14:02
Reaguji na sitole:
Řádek 8 nahraď za: $zapis=$soubor."\n".$_POST['jmeno'].$delimeter.$_POST['email'].$delimeter.nl2br($_POST['text'], false); |
||
sitole Profil |
#5 · Zasláno: 6. 12. 2014, 19:51:08
Všechno stejné.. Stále to píše ten další řádek v JMENO
|
||
Fisir Profil |
#6 · Zasláno: 6. 12. 2014, 19:59:04
Reaguji na sitole:
Omlouvám se, moje chyba, nl2br() stejně zachovává řádkové zlomy. Použij tedy:
$zapis=$soubor."\n".$_POST['jmeno'].$delimeter.$_POST['email'].$delimeter.str_replace(PHP_EOL, '<br>', $_POST['text']); |
||
sitole Profil |
#7 · Zasláno: 6. 12. 2014, 21:53:38
Ha! Super! Děkuji moc :)
|
||
Časová prodleva: 10 let
|
0