błędne wyświetlanie komentarzy na stronie

Forum poświęcone skryptom, językom programowania, serwerom i hostingowi, domenom itp.
Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

błędne wyświetlanie komentarzy na stronie

Post autor: Darom » 29 lipca 2011, 19:19

Zauważyłem na mojej stronie błędy w wyświetlaniu komentarzy. Polegają one na tym, że jak dodam jakiś komentarz skladający się z kilku linijek tekstu to wtedy ten jeden komentarz dzieli mi na kilka komentarzy.
Przykładowo gdy w jednym komentarzu napisze tak:

Kod: Zaznacz cały

test
test
test
test
To wtedy dzieli mi ten jeden komentarz o treści test na 4 dodane komentarze o treści test.
Przykladowo na mojej stronie dzieje się to tak: http://www.history.is.net.pl/?news&id=8&wyslano=1
Komentarze mam na pliku txt. Nie wiem co jest nie tak, możecie mi w tym pomóc ?
dodaj.php

Kod: Zaznacz cały

<script>

function walidacja(thi)
{
   var blad = false;
   var wzor = /\s/g;

   if(thi.nick.value.replace(wzor, "").length == 0)
      blad = true;
   if(thi.pole.value.replace(wzor, "").length == 0)
      blad = true;      
        
   if(blad)
      document.getElementById('blad').innerHTML = "&nbsp; &nbsp;» Prosze wypełnić wszystkie pola !"
   else
      thi.submit();    
}

</script>

<div class="news">
   <form method="post" class="formularz" action="wyslij.php?id=<? echo $_GET['id']; ?>" onsubmit="walidacja(this);return false;"><br />
      <p>
         Komentarz<br>
         <textarea name="pole" cols="42" rows="6" style="background-color:#FFCCFF;"></textarea>
      </p>
      <p>
         Podpis<br>
         <input type="text" name="nick" size="54" style="background-color:#FFCCFF;">
      </p>
      <div style="text-align:left;padding:4px;">
         <input type="hidden" name="action" value="1">
         <input type="submit" value="Wyślij">
      </div>
   </form>
   <div id="blad" style="color:#ff0000;font-weight:bold;"></div>
</div>


<?php

if(isset($_POST['action']) && $_POST['action']==1)
echo <<< SER
      Nick: {$_POST['nick']}<br>
      Komentarz: {$_POST['pole']}
SER;

?>
pokaz.php

Kod: Zaznacz cały

<?php
if (!file_exists('comments/'.$_GET['id'].'.txt'))
{
    file_put_contents('comments/'.$_GET['id'].'.txt', '');
    chmod('comments/'.$_GET['id'].'.txt', 0777);
}
    
$file = file('comments/'.$_GET['id'].'.txt'); rsort($file); $file = file('comments/'.$_GET['id'].'.txt'); $file = array_reverse($file);
foreach($file as $key => $value)
{
   $data = explode('|||', $value);

   echo '<span style="color: #222222"><b>'. $data[0] . ' | </b></span><span style="color: #E74100"><b>' . $data[1] .'</b></span><br />';
   $tresc = $data[5];
   echo ''. $tresc .'<br>';
}
?>
wyslij.php

Kod: Zaznacz cały

<?php 
if ($_GET['wyslano']!=1) {
if(empty($_POST['nick']) || empty($_POST['mail']) || empty($_POST['www']) || empty($_POST['temat']) || empty($_POST['pole'])) { 
header('Location:  http://www.history.is.net.pl/?news&id='.$_GET['id'].'&wyslano=1');
} 
$nick = $_POST['nick']; 
$mail = $_POST['mail']; 
$www = $_POST['www']; 
$temat = $_POST['temat']; 
$pole = $_POST['pole']; 
$nick  = HTMLSpecialChars($nick); 
$mail  = HTMLSpecialChars($mail); 
$www  = HTMLSpecialChars($www); 
$temat  = HTMLSpecialChars($temat); 
$pole  = HTMLSpecialChars($pole); 
$datanow = date("d.m.Y H:i");
$wynik = $datanow . '|||' . $nick .'|||'. $mail . '|||' . $www . '|||' . $temat . '|||' . $pole . "\n"; 
$plik = 'comments/'.$_GET['id'].'.txt'; 
$fp = fopen($plik, "a"); 
fwrite ($fp, $wynik); 
fclose($fp);
} 
?>
Prosze Was o pomoc w tej sprawie.

ODPOWIEDZ

Wróć do „Webmastering”