Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z dodawaniem komentarzy
Forum PHP.pl > Forum > PHP
josef871
Witam! Mam mały problemik otóż napisałem skrypt do obsługi komentarzy dość prosty oparty o pliki. Na pierwszej stronie formularz z jednym polem textarea przekazywany metodą GET, poniżej jeżeli już istnieje plik z komentarzami to jest odczytywany przez file_get_contents i explode względem "\n" i wyświetlenie wszystkich komentarzy. Druga strona to zapis przekazanego stringu do pliku, najpierw użyta jest funkcja strip_tags potem poprostu fwrite i fclose.
Wszystko działa pięknie ładnie póki to sprawdzam na apachu ale jak wrzuce na serwer to heh komentarze zapisują się podwujnie!? Nie wiem o co chodzi, może ktoś pomoże?? blinksmiley.gif Może ktoś się spotkał z takim przypadkiem... biggrin.gif
Cysiaczek
Pokaż kod, albo idź do wrózki.

Pozdrawiam.
marast78
get'em przekazujesz tekst z textarea? (i podwójnie się pisze winksmiley.jpg), bez kodu nikt ci nie pomoże..
josef871
prosze bardzo pierwsza strona zawiera taki kod:

  1. <form method="get" action="dodaj.php">
  2. <textarea rows="5" cols="35" name="opinia">
  3. </textarea><br />
  4. <input type="submit" value="Dodaj komentarz" />
  5. </form>
  6.  
  7.  
  8. <?php
  9. if(!file_exists("opinia.txt")) {
  10. echo("Brak komentarzy...");}
  11. else {
  12. $str = file_get_contents('opinia.txt');
  13. $str = explode("n", $str);
  14. $tab = array_reverse($str);
  15. foreach($tab as $val)
  16. echo("<div class="komentarz"><div>$val</div></div><br>");
  17. }
  18. ?>
  19.  
  20.  
  21. a to druga strona:
  22. <?php
  23. function licznik() //to jest licznik do komentarzy
  24. {
  25. if(file_exists("licznik.txt")) {
  26. if(($file = fopen("licznik.txt", 'r+')) === false) {
  27. echo("BLAD");
  28. return;
  29. }
  30. }
  31. else {
  32. if(($file = fopen("licznik.txt", 'w+')) === false) {
  33. echo("BLAD");
  34. return;
  35. }
  36. }
  37. $licznik = intval(fgets($file));
  38. $licznik++;
  39.  
  40. fseek($file, 0);
  41. fputs($file, $licznik."r");
  42. fclose($file);
  43.  
  44. return $licznik;
  45. }
  46.  
  47. //------------------------------------------------------------------------------------------
  48.  
  49.  
  50. if(!isSet($_GET["opinia"]) || $_GET["opinia"] == "") {
  51. echo("<div class="notka"><img src="nazwy/a.gif" alt="nots" /><b>&nbsp;&nbsp;&nbsp;KOMENTARZ JEST PUSTY! Strona zostanie automatycznie przekierowana.</b></div>");}
  52.  
  53. elseif(!$fd = fopen("opinia.txt", 'a')) {
  54. echo("<div class="notka"><img src="nazwy/a.gif" alt="nots" /><b>&nbsp;&nbsp;&nbsp;NIE ZAPISANO BŁĄD SERWERA. Strona zostanie automatycznie przekierowana.</b></div>");}
  55.  
  56. else {
  57. //licznik komentarzy
  58. $licznik = licznik();
  59.  
  60.  
  61. $str = strip_tags($_GET["opinia"]);
  62.  
  63. $data = date("G:i:s  d.m.Y");
  64. fwrite($fd, "<div class="datadod">data dodania: $data, Nr komentarza: $licznik</div>".$str."n");
  65. fclose($fd);
  66. echo("<div class="notka"><img src="nazwy/a.gif" alt="nots" /><b>&nbsp;&nbsp;&nbsp;Dziękuje za dodanie komentarza. Strona zostanie automatycznie przekiero
    wana.</b></div>"
    );
  67. }
  68. ?>


no to tak wygląda na apachu normalnie śmiga ale po wrzuceniu na serwer zapisuje do pliku podwujnie Rkingsmiley.png

--
Wynaleziono BBCode i prosze o jego stosowanie

~kwiateusz
marast78
przetestowałem u siebie skrypcik (proponuję zastosować POST a nie GET), wogóle dużo uwag, ale ucz się na błędach (PODWóJNIE się pisze :]), trudno powiedzieć, dlaczego w ten sposób się zapisuje (podwójnie). Coś musi być nie tak z ustawieniami na tym serwerze.
josef871
heh kutfa jego mać bez kitu problem tkwił w tym get, nie bardzo wiem po ca ja to robiłem przez get heheh dobra spoko dzieki guitar.gif guitar.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.