Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Komenatrze
Forum PHP.pl > Forum > Przedszkole
mysc
Witam !
Znalazłem prosty skrypt służący do dodawania komentarzy. Działa...tyle, że z małym minusem. A mianowicie po odświeżeniu strony (po wysłaniu formularza) komentarz wysyła się kolejny raz...

Czy da się naprawić ten błąd ? Jeśli tak to w jaki sposób ?

Nie bez powodu napisałem w "przedszkolu", w PHP jestem kompletnie zielony, więc proszę o dość zrozumiałe tłumaczenie.



Oto script :
  1. <?
  2.  
  3. $DATADIR="data/";
  4. $FORMAT="<table cellspacing='0' style='width:500px; color:white; border-style:solid; border-width: thin; border-color:#009900; margin-top:15px;' ><tr style='background:#009900;'><td>Dodał : <b>%imie%</b> </td><td style='float:right;'>Data dodania : <b>%data%</b></td></tr><tr style='color:black;'><td colspan='2' style='text-align:justify;'>%tekst%</td></tr></table>";
  5.  
  6. // --------------------------------------------------------
  7.  
  8. $commentID="a$commentID";
  9.  
  10. function displayComments()
  11. {
  12.    global $commentID, $start, $DATADIR, $FORMAT;
  13.  
  14.    if(strstr($commentID, "/"))
  15.        return;
  16.  
  17.   if(!file_exists($DATADIR.$commentID))
  18.        return;
  19.  
  20.    $file=fopen($DATADIR.$commentID, "r");
  21.    flock($file, 1);
  22.  
  23.    $i=0;
  24.  
  25.    while(!feof($file))
  26.    {
  27.        $imie=chop(fgets($file, 1000));
  28.        $email=chop(fgets($file, 1000));
  29.        $data=chop(fgets($file, 1000));
  30.        $comment=chop(fgets($file, 100000));
  31.  
  32.        if(feof($file))
  33.            break;
  34.  
  35.        $display=$FORMAT;
  36.  
  37.        if($email)
  38.            $mailto="<A HREF=\"mailto:$email\">$email</A>";
  39.        else
  40.            $mailto="Brak e-maila";
  41.        
  42.  
  43.        $display=str_replace("%imie%", $imie, $display);
  44.        $display=str_replace("%email%", $mailto, $display);
  45.        $display=str_replace("%data%", $data, $display);
  46.        $display=str_replace("%tekst%", $comment, $display);
  47.  
  48.        echo($display);
  49.  
  50.        $i++;
  51.    }
  52.  
  53.    flock($file, 3);
  54.    fclose($file);
  55. }
  56.  
  57. function displayForm()
  58. {
  59.    global $REQUEST_URI, $commentID;
  60.    $id=substr($commentID, 1);
  61.    $len=strlen($REQUEST_URI)-strlen(strchr($REQUEST_URI, "?"));
  62.    $url=substr($REQUEST_URI, 0, $len);
  63.    ?>
  64.        <FORM ACTION=<?=$url?> METHOD=POST>
  65.        <INPUT TYPE=HIDDEN NAME=COMMENTACTION VALUE=add>
  66.        <INPUT TYPE=HIDDEN NAME=commentID VALUE="<?=$id?>">
  67.        <TABLE>
  68.        <TR><TD>Nick:</TD><TD align="left"><INPUT TYPE=TEXT NAME=f_imie SIZE=35></TD>
  69.        <TR><TD>Treść:</TD><TD><TEXTAREA NAME=f_tresc COLS=50 ROWS=4></TEXTAREA></TD>
  70.        <TR><TD></TD><TD><INPUT TYPE=SUBMIT style="color: #000000; background-color: #FFFFFF" VALUE="Dodaj Komentarz"></TD></TR>
  71.        </TABLE>
  72.        </FORM>
  73.    <?
  74. }
  75.  
  76. if($COMMENTACTION=="add")
  77. {
  78.    $file=fopen($DATADIR.$commentID, "a");
  79.    flock($file, 2);
  80.  
  81.   $f_tresc=str_replace("\n", "<BR>", $f_tresc);
  82.   $f_tresc=str_replace("r", "", $f_tresc);
  83.   $f_imie=str_replace("\n", "<BR>", $f_imie);
  84.   $f_imei=str_replace("r", "", $f_imie);
  85.   $f_email=str_replace("\n", "<BR>", $f_email);
  86.   $f_email=str_replace("r", "", $f_email);
  87.  
  88.   fputs($file, $f_imie);
  89.    fputs($file, "\n");
  90.   fputs($file, $f_email);
  91.    fputs($file, "\n");
  92.   fputs($file, date("H:i d-m-Y"));
  93.    fputs($file, "\n");
  94.   fputs($file, $f_tresc);
  95.    fputs($file, "\n");
  96.  
  97.    flock($file, 3);
  98.    fclose($file);
  99. }
  100.  
  101. ?>




To pewnie nie będzie potrzebne, ale na wszelki wypadek podam :

  1. <?
  2. $commentID=1;
  3. include("kom.php3");
  4. ?>


  1. <?
  2. displayComments();
  3. ?>


  1. <? displayForm(); ?>



Skrypt pobrałem stąd : http://www.ygreg.com/php/skrypty/komentarze/index.php3
tmka
Temat: odswiezanie_strony_zapis
mysc
Chyba źle się wyraziłem ;/
Jak napisałem, w PHP jestem zielony więc, jeśli to nie problem, proszę jakąś "uczynną duszyczkę" o gotowe rozwiązanie winksmiley.jpg
Wicepsik
To jak robisz stronę to może warto się zacząć uczyć?
Dział gotowych rozwiązań pare działów niżej.
nospor
Cytat
o gotowe rozwiązanie

temat zamykam. Jak zechesz, napisz do mnie PW a przeniose na gielde ofert.
Jak zas bedziesz chcial sie czegos nauczyc, to w linku w czesniej dostales odpowiedź. Wystarczy wcielic to w zycie. w razie problemow mozesz napisac do mnie na PW, pokazesz co napisales, i temat otworzymy
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.