Cześć,
chciałem zrobić sobie księgę gości z tokenem , wszystko fajnie znalazłem skrypt tokena wszystko działa . Ale chciałem popracować nad tym aby ktoś nie dodawał mi tam tych wpisów codziennie .
Postanowiłem użyć ciasteczek lecz coś ich źle używam (pierwszy raz).

Chciałem zrobić tak :
1.jeśli wpisane dane w formularzu poprawnie wyślij ciasteczko o wartości 1 ważne miesiąc
2.jeśli ktoś się chce w ciągu miesiąca dopisać nie może ,bo funkcja sprawdza czy istnieje ciacho o wartosci 1 .
3. zle wypełni formularz wyswietli sie tekst i nie ustawia ciacha .

Wydaje mi się że nie działa przez sesje , ale nie wiem czy mam racje .
Może macie jakieś pomysły aby to rozwiązać.

Oto kod 2 dokumentow

formularz.php
  1. <?php
  2. $_SESSION['token'] = '';
  3.  
  4. ?>
  5. <?php
  6.  
  7. for($i=0;$i<5;$i++) {
  8. $liczba = rand(0,9);
  9. $_SESSION['token'] .= $liczba;
  10. $img .= '<img src="token/'.$liczba.'.gif" />';
  11. }
  12. ?>
  13. <html>
  14. <head>
  15. <title>Ksiega gosci</title>
  16. </head>
  17. <body>
  18. <TABLE>
  19.  <form action="sprawdz.php" method="post">
  20.        <TR><TD>Osoba :</TD><TD><INPUT TYPE="text" NAME="osoba"></TD></TR>
  21.        <TR><TD>Wpis :</TD><TD>
  22.           <TEXTAREA NAME="wpis" COLS=45 ROWS=4 wrap="VIRTUAL"></TEXTAREA>
  23.        </TD></TR>
  24. <TR><TD> Kod</TD><TD> <?php echo $img; /* Wyświetla token w formie graficznej */ ?></TD></TR>
  25. <TR><TD>Wprowadź kod z obrazka :</TD><TD> <input type="text" name="token"></TD></TR>
  26. <TR><TD></TD><TD><input type="submit" value="Wyślij" /></TD></TR>
  27.    
  28.  
  29.  </form>
  30.  
  31.  </TABLE>
  32. </body>
  33. </html>


sprawdz.php
  1. <?php
  2.  
  3.   mysql_connect ("localhost", "root", "") or die ("Nie można połączyć się z MySQL");
  4.      mysql_select_db ("login") or die ("Nie można połączyć się z bazą baza");
  5.  
  6. if ($_SESSION['token'] ==  $_POST['token']) {
  7. setcookie ('wpis', "1", time()+60*60*24*28);
  8. echo " <b>Twój wpis został dodany</b>";
  9. $osoba = addslashes(nl2br(htmlentities ($_POST['osoba'])));
  10.      $wpis = addslashes(nl2br(htmlentities ($_POST['wpis'])));
  11.  
  12.      if ($osoba && $wpis) { // są informacje do wpisania do księgi gości
  13.        $query = "INSERT INTO ksiegagosci (data, osoba, wpis) ".
  14.                 "VALUES (now(), '$osoba', '$wpis');";
  15.        $wynik = mysql_query ($query);
  16.      }
  17.  
  18.  $wynik = mysql_query ("SELECT * FROM ksiegagosci ORDER BY data DESC;");
  19.  
  20.      while ($wynik && $rekord = mysql_fetch_assoc ($wynik)) {
  21.        print "<DL><DT>".stripslashes($rekord['wpis'])."<DD><B>".
  22.               stripslashes($rekord['osoba']).",</B> <I>".$rekord['data']."</I></DL>\n";}
  23.    
  24.    
  25.                echo '<a href="java script:history.back();">Wstecz</A>';
  26.                                                                                        } elseif ($_COOKIE['wpis']== 1) {
  27.        //echo '<b>nie możesz się dopisać w tym miesiacu </b>';
  28.                header ("Location:  http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/index.php"); //przekierowanie jezeli istnieje cicho o wartosci 1
  29.                }
  30.    
  31.  
  32. else  {
  33.                echo 'Wprowadzono <b>nieprawidłowe</b> dane <br><br> <a href="java script:history.back();">Wstecz</A>';
  34. }
  35.  
  36. ?>