Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Nie ma ciasteczek
yavaho
post 23.07.2004, 15:16:48
Post #1





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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.


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
Liko
post 23.07.2004, 15:31:59
Post #2





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
yavaho
post 23.07.2004, 17:38:45
Post #3





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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?

Ten post edytował yavaho 25.07.2004, 14:07:42


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:42