Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie ma ciasteczek
Forum PHP.pl > Forum > Przedszkole
yavaho
Po opublikowaniu strony na serwerze w internecie nie dziala mi obsluga ciasteczek.
Na moim domowym serwerze wszysto jest OK

Ponizej kawalek kodu, ktory ma w pewien sposob zabezpieczyc przed kilkakrotnym wyslaniem tego samego formularza.

  1. <?php
  2. //poczatek stony
  3. if (isset($ciacho_koment))
  4.  setcookie(&#092;"ciacho_koment\",\"1\",time()+30);
  5.  
  6.  
  7. //sprawdzenie czy jest ciacho
  8. if( isset( $_COOKIE[ 'ciacho_koment' ] ) )
  9.  $Blad ='Przed chwila wysłałes już jeden komentarz';
  10.  
  11.  
  12. // a w formularzu znajduje sie taka linijka
  13. print ('<input type=\"hidden\" name=\"ciacho_koment\" value=\"1\">');
  14. ?>


Wydaje mi sie ze problem lezy po stronie serwera.
Liko
To źle ci się wydaje. Ty robisz błąd. Na serwerze pewnie jest wyłaczone register_globals. Więc musisz pole formularz sprawdzić przez tablice: $_POST jeżeli wysyłasz formularz metodą: post.
  1. <?php
  2. ?php
  3. //poczatek stony
  4. if (isset($_POST['ciacho_koment']))
  5.  setcookie(&#092;"ciacho_koment\",\"1\",time()+30);
  6.  
  7.  
  8. //sprawdzenie czy jest ciacho
  9. if( isset( $_COOKIE[ 'ciacho_koment' ] ) )
  10.  $Blad ='Przed chwila wysłałes już jeden komentarz';
  11.  
  12.  
  13. // a w formularzu znajduje sie taka linijka
  14. print ('<input type=\"hidden\" name=\"ciacho_koment\" value=\"1\">');
  15. ?>
yavaho
Poprawilem i niestety bez zmian.
Wstawilem nawet inny skrypt, tym razem licznik odwiedzin wykorzystujacy ciasteczka i dalej to samo. Skrypt nie zabezpiecza przed wielokrotnym nacisnieciem F5.

  1. <?php
  2. setcookie(&#092;"ciacho_licznik\",\"1\",time()+300);
  3. ?>
  4.  
  5. <?php
  6. $file=fopen(&#092;"licznik/licznik.txt\", \"r\"); 
  7. flock($file, 1); 
  8. $licznik=fgets($file, 200); 
  9. flock($file, 3); 
  10. fclose($file); 
  11.  
  12. if(!isset($_COOKIE['ciacho_licznik'])) { 
  13.  $licznik=$licznik+1;
  14.  $file=fopen(&#092;"licznik/licznik.txt\", \"w\"); 
  15.  flock($file, 2); 
  16.  fwrite($file, $licznik); 
  17.  flock($file, 3); 
  18.  fclose($file); 
  19. } 
  20.  
  21. echo('<p>'.$licznik.'</p>'); 
  22. ?>


Zrobiłem wiec licznik wykorzystajacy sesje i dziala - troche dziwne bo sesje chyba tez sa oparte o ciasteczka?

  1. <?php
  2. if(&#092;!isset($_SESSION['licz_odw'])){
  3.  
  4.  $file=fopen(&#092;"licznik/licznik.txt\", \"r\"); 
  5.  flock($file, 1); 
  6.  $licz=fgets($file, 100); 
  7.  flock($file, 3); 
  8.  fclose($file); 
  9.  
  10.  $licz=$licz+1;
  11.  
  12.  $file=fopen(&#092;"licznik/licznik.txt\", \"w\"); 
  13.  flock($file, 2); 
  14.  fwrite($file, $licz); 
  15.  flock($file, 3); 
  16.  fclose($file); 
  17.  
  18.  $_SESSION['licz_odw'] = $licz;
  19. } 
  20.  
  21. echo('<p>'.$_SESSION['licz_odw'].'</p>'); 
  22. ?>


Tylko czy ten licznik bedzie poprawnie dzialal?
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.