Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Blokada przed ponownym przesłaniu rekordu...
Forum PHP.pl > Forum > Przedszkole
Berbnm
Czy macie jakieś sposoby na blokadę przed ponownym przesłaniem tego samego rekordu po odświeżeniu strony? Próbowałem z isset i empty ale nic z tego :E Kod:

  1. <?php 
  2.  
  3. mysql_connect ('127.0.0.1','root','krasnal');
  4.  
  5.  
  6. $base= "CREATE TABLE `log` (
  7. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  8. `login` VARCHAR(13) NOT NULL,
  9. `password` VARCHAR(15) NOT NULL
  10. ) TYPE= MYISAM;";
  11.  
  12. $records= "INSERT INTO `log` (
  13. `login`,`password`)
  14. VALUES (
  15. 'erig','qwerty');";
  16.  
  17. mysql_query($base);
  18. mysql_query($records);
  19.  
  20. ?>
szpakoo
  1. <?php
  2.  
  3. if(!isset($_SESSION['wykonano']))
  4. {
  5. <!--quoteo--><div class='quotetop'>Cytat</div><div class='quotemain'><!--quotec-->mysql_connect ('127.0.0.1','root','krasnal');
  6.  
  7.  
  8. $base= "CREATE TABLE `log` (
  9. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  10. `login` VARCHAR(13) NOT NULL,
  11. `password` VARCHAR(15) NOT NULL
  12. ) TYPE= MYISAM;";
  13.  
  14. $records= "INSERT INTO `log` (
  15. `login`,`password`)
  16. VALUES (
  17. 'erig','qwerty');";
  18.  
  19. mysql_query($base);
  20. mysql_query($records);<!--QuoteEnd--></div><!--QuoteEEnd-->
  21. if( tutaj jakis warunek na to czy skrypt sie wykonal) $_SESSION['wykonano']=true;
  22. }
  23. else echo 'juz raz wykonales ten skrypt';
  24. ?>
potreb
Lub po wykonaniu przekierowanie:
  1. <?php
  2. header('location: strona.php');
  3. ?>


Albo stworzyć funkcję która ci sprawdzi czy dany rekord istnieje już w bazie
VegA
Na moje można zrobić przekierowanie po 1sek haha.gif albo po 2sek. tak przynajmniej ja robie tongue.gif o to kod

  1. <META HTTP-EQUIV=Refresh CONTENT="1; URL=index.html">


Tam gdzie wpisalem 1 to znaczy po 1sek a tam gdzie URL to tłumaczyć chyba nie muszę smile.gif
Pilsener
Najczęściej w takich wypadkach zapisuje się w bazie IP usera oraz czas akcji/dodania czy coś tam - nic prostszego, niż to wykorzystać - sprawdzasz, czy akcja jest z tego samego IP - jeśli jest, to liczysz różnicę czasów. Metoda ta ma tą zaletę, że możesz ustawić, by np. dodawano wpis maks. raz na godzinę.

Drugi sposób jest bardziej "elo" - generujesz w formularzu token:
  1. <?php
  2. $token = md5(uniqid());
  3. ?>
- i umieszczasz w inpucie hidden. Wystarczy teraz odpowiednie pole w bazie z klauzulą unikalności. W przeciwieństwie do pierwszej metody ta NIE ZABEZPIECZA przed spamem, a jedynie przed dwukrotnym wysłaniem tego samego formularza.
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.