Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ponowne wysłanie formularza po kilku minutach, Jak cos takiego zrobic ?
Matiash
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


Witam, jak zrobic cos takiego ze np. jak ktos kliknie 4 * wyslij to za 4 razem wyskoczy komunikat ze musi odczekac 5 minut ?


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Zależy co ma się dziać po każdym kliku wyślij.

Jeżeli strona nie jest przeładowywana to możesz zliczać liczbę kliknięć za pomcą JavaScript a po 4 kliku zapamiętać czas i jak user znowu kliknie to sprawdasz ile już czasu minęło.

Jak strona się przeładowuje to możesz w sesji zapisywać ilośc kliknięć a po 4 czas i dalej tak samo jak wyżej.

Łukasz


--------------------
Go to the top of the page
+Quote Post
Matiash
post
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


tak strona się przeładowywuje po każdym wysłani formularza, tzn właściwie jest to uplod plikow + tworzenie pliku txt gdzie sa dane zapisywane. A nie musze jeszcze ustawic np. jakiegos rozpoznawania ip albo cos ?


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
kossa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Jeśli zrobisz to na sesjach to każda sesja jest indywidualna dla danego użytkownika, poczytaj o sesjach http://pl2.php.net/manual/en/ref.session.php. Sprawdzanie IP w tej sytuacji nie jest konieczne.

Łukasz


--------------------
Go to the top of the page
+Quote Post
Matiash
post
Post #5





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


No wiec zrobilem ale na podstawie ciasteczek gdyz wydawalo mi sie to prostsze. Jednak pojawia sie inny problem.

kod przedstawia sie nastepujaco:

  1. <?php
  2. if (isset($_COOKIE['ciastko2'])) {
  3.  echo("Już głosowałeś!");
  4.  /*warunek sprawdza czy istnieje w przeglądarce ciasteczko o nazwie
  5.    "ciastko2", jeśli tak to nie pozwala na ponowne wysłanie formularza*/
  6. }
  7. else {
  8.  
  9. //////////////////////////////////////
  10. //tutaj jest moj kod formularza//
  11. //////////////////////////////////////
  12.  
  13. setcookie("ciastko2", "glosowalem", time()+56);
  14.  
  15.  header("Location: la.html");
  16. }
  17. ?>


I tak, jesli mam czas ustawiony np + 56 czyli 56 sekund czas wygasniecia ciasteczka to nie dziala natomiast jesli ustawie 10000 to dziala. Od 10000 sekund wzwyż działa. Co moze byc przyczyna ?


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
strife
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Testowałem Twój kod na Firefox'ie, Operze i IE. Wszystko działa poprawnie, wyczyść cache/ciasteczka w przeglądarce i zobacz jeszcze raz. Albo rozwiń wypowiedź:

Cytat
sekund czas wygasniecia ciasteczka to nie dziala


--------------------
Go to the top of the page
+Quote Post
Matiash
post
Post #7





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


No wiec wyczyściłem ciasteczka ( moja przegladarka to firefox 2.0.0.3 ) i dalej to samo. Problem jest taki ze dopiero gdy czas wygaśniecia ciasteczek ustawie na 10000 i wiecej sekund to działa ( wyswietla sie napis "Juz glosowano" Natomiast jesli ustawie mniejsza liczbe np 60 albo 120 to po ponownym wyslaniu formularza w odstepie krotszym niz te 120 lub 60 sekund wysyla go.

Probowalem jeszcze na IE wersja 6.0.3 i jest jeszcze gorzej tam po klikniecu wyslij pojawia sie caly kod php.

Oto moj kod:

  1. <?php
  2. if (isset($_COOKIE['ciastko2'])) {
  3.  echo("Już głosowałeś!");
  4.  /*warunek sprawdza czy istnieje w przeglądarce ciasteczko o nazwie
  5.    "ciastko2", jeśli tak to nie pozwala na ponowne wysłanie formularza*/
  6. }
  7. else {
  8. $katalog="./pliki/".date('dmyHis')."/";
  9. mkdir($katalog,0777);//tworzymy katalog
  10. $plik=fopen($katalog."opis.txt","w+");
  11. fputs($plik,"Imię i nazwisko:".chr(10).$_POST['imie'].chr(10).chr(10)."Adres email:".chr(10).$_POST['email'].chr(10).chr(10)."Treść wiadomości:".chr(10).$_POST['tresc'].chr(10).chr(10)."Dodano: ".chr(10).date("d F Y, H:i"));
  12. fclose($plik); 
  13. echo "Dziękujemy za przesłanie relacji<br /><br />";
  14. for ($i=0; $i<sizeof($_FILES['plik']['size']); $i++) {
  15. if ($_FILES['plik']['size'][$i] !=0) {
  16. $uploaded = $katalog. $_FILES['plik']['name'][$i];
  17. if (is_uploaded_file($_FILES['plik']['tmp_name'][$i])) {
  18.  if ($_FILES['plik']['type'][$i]=="image/jpeg") {
  19.  } else { echo "Zły format pliku numer $i<br>"; exit; }
  20. if ($_FILES['plik']['size'][$i] > 205500 ) {
  21. echo "Rozmiar zdjęcia numer $i jest zbyt wielki<br />";
  22.  
  23. } else {
  24. move_uploaded_file($_FILES['plik']['tmp_name'][$i], $uploaded);
  25. $dane=strip_tags(file_get_contents($katalog.$_FILES['plik']['name'][$i]));//usuwamy tagi php i html
  26.  $file=fopen($katalog.$_FILES['plik']['name'][$i],'w');//otwieramy plik
  27.  fwrite($file,$dane);//zapisujemy go w zmienionej formie
  28.  
  29. echo "Operacja wysyłania zdjęcia nr. $i przebiegła pomyślnie<br />";
  30. }
  31. } else {
  32.  
  33. echo "Operacja przesłania zdjęć nie powiodła się $i!<br />";
  34. }
  35. }
  36. }
  37.  
  38. setcookie("ciastko2", "glosowalem", time()+120);
  39.  
  40.  header("Location: la.html");
  41. }
  42. ?>


TO co zobaczylem pod IE przeraziło mnie

---------------------------------------

Czy mógłby ktos jeszcze przetestowac moj kod ? U mnie tak jak mowie gdy czas wygasniecia ciasteczek ustawie na 10000 sekund lub wiekszy niz 10000 to działa ale jak ustawiam mniej np. 60 sekund lub 120 to mozna wysyłać formularz do woli. A co moze byc przyczyna ze po klkniecu wyslij na IE wyswietla sie kod php a formularz nie jest uploadowany na serwer ?

A moze to wina windows , bo akutalnie na 64bitowej wersji pracuje. Kolega testowal skrypt i u niego tez dziala.

Ten post edytował Matiash 8.05.2007, 11:55:11


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
Void(Null)
post
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 12.04.2007
Skąd: Błonie

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


A co zrobisz jak ktoś zablokuje swoje ciastka w przeglądarce ?
Go to the top of the page
+Quote Post
Matiash
post
Post #9





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


no własnie a da sie jakos zmusic kogos zeby wlaczyl ciastka w przegladarce ? Tzn ze strona z uploadem sie nie pojawi dopoki nie ma wlaczonych ciastek ?


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
kwiateusz
post
Post #10


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




oczywiście ustawiasz ciacho po wejściu na strone a następnie sprawdzam jak jest ciacho to wpuszczasz, a jak nie ma to do widzenia tongue.gif
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 Aktualny czas: 22.08.2025 - 04:41