Witam !
Znalazłem dość prosty skrypt obsługujący komentarze, ale jest kilka niedogodnień.
Jako, że kompletnie się nie znam na PHP , sam sobie nie poradzę. Mam nadzieję, że to dobry dział.

1. Po odświeżeniu strony (po dodaniu komentarza) , dodaje się kolejny komentarz - Nie wiem co z tym zrobić.
(Może przekierowanie do strony z napisem "Komentarz został dodany" , a później powrót ?)

2. Chciałbym dodać zabezpieczenie przeciw spamerom - Osoba z tego samego IP może dodać komentarz raz na 120 sekund.

3. Komentarze starsze niż 30 dni są kasowane.


Skrypt, który chciałbym przerobić (a raczej chciałbym żeby ktoś go przerobił ;p) : http://www.ygreg.com/php/skrypty/komentarze/index.php3


  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(); ?>