Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Automatyczne wysyłanie formularza
xsonic
post 11.03.2010, 19:19:17
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


Witam robię sobie małą stronkę i nie mam pojęcia jak automatycznie wysyłać formularz dana ilość razy np 5 po naciśnięciu czegoś nie załadowaniu się strony.
Go to the top of the page
+Quote Post
Randallmaster
post 11.03.2010, 21:26:57
Post #2





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wy?wietlamy formularz
  5. echo "<table border=\"0\"><form method=\"post\">
  6. <tr>
  7. <td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >Użytkownik:   </font></td>
  8. <td><input type=\"text\" name=\"uzytkownik\" style=\"width: 150px\"></td>
  9. </tr>
  10. <tr>
  11. <td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >Temat:   </font></td>
  12. <td><input type=\"text\" name=\"imie\" style=\"width: 150px\" maxlength='20'></td>
  13. </tr>
  14. <tr>
  15. <td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >e-mail:   </font></td>
  16. <td><input type=\"text\" name=\"email\" style=\"width: 150px\" maxlength='20'></td>
  17. </tr>
  18. <tr>
  19. <td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >Wiadomo?ć:   </font></td>
  20. <td><textarea name=\"tresc\" style=\"width: 300px; height: 70px\"></textarea></td>
  21. </tr>
  22. <tr>
  23. <td> </td>
  24. <td><br><center>
  25. <input type=\"submit\" class=\"wyslij\" name=\"submit\" value=\"Wy?lij\"><alt=\"Wy?lij\"></br></center> 
  26. </form>
  27. </tr>
  28. </table>";
  29. }
  30. // sprawdzamy, czy zmienne przesłane z formularza nie s? puste
  31. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  32. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomo?ć
  33. // zmienna $message zawiera tre?ć wiadomo?ci
  34. $message = "Użytkownik: $_POST[uzytkownik]\nTemat: $_POST[imie]\ne-mail: $_POST[email]\n\nWiadomo?ć:\n$_POST[tresc]";
  35. // zmienna $header zawiera przede wszystkim adres zwrotny
  36. $header = "From: $_POST[uzytkownik] <$_POST[email]>";
  37. // funkcja mail() za pomoc? której wiadomo?ć zostanie wysłana
  38. @mail("randall.kamil@gmail.com","Zmiana Konta - pracujkalisz","$message","$header")
  39. or die('Nie udało się wysłać wiadomo?ci');
  40. // wy?wietlenie komunikatu w przypadku powodzenia
  41. echo "<div align=\"center\"><font color='#43ae2e'>Wiadomo?ć została wysłana poprawnie! Dziękujemy.</font></div>";
  42. }
  43. // lub w przypadku nie wypełnienia formularza do końca
  44. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  45.  
  46. ?>


to kod z mojej strony przerób sobie smile.gif

Ten post edytował Randallmaster 11.03.2010, 21:27:30
Go to the top of the page
+Quote Post
xsonic
post 11.03.2010, 21:47:30
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


naprawdę nie wiem w czym to mi miało pomóc wiem jak zrobić formularz w html wyświetlić go w php echem tu chodzi żeby po naciśnięciu przycisku dane z formularza (te same) wysyłane były 5 razy w odstępie czasowym np 5 sekund

  1. <?php
  2.  
  3. echo '<form target="indexprawy" name="formularz" action="http://...." method="post" >
  4. <input type=submit value="Wyślij">
  5. </form>
  6.  
  7. <script>
  8.  
  9. function GO(){
  10. setTimeout("subForm()",5000)
  11. }
  12.  
  13. function subForm(){
  14. document.formularz.submit()
  15. }
  16.  
  17. onload = GO
  18.  
  19. </script> ';
  20.  
  21. ?>


Coś takiego mnie interesuje tylko żeby włączało się po naciśnięciu przycisku i powtarzało się 5 krotnie

Ten post edytował xsonic 12.03.2010, 08:16:53
Go to the top of the page
+Quote Post
furman12
post 12.03.2010, 08:02:32
Post #4





Grupa: Zarejestrowani
Postów: 118
Pomógł: 4
Dołączył: 3.12.2009

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


pętla for oraz if + isset i sleep.
Go to the top of the page
+Quote Post
xsonic
post 14.03.2010, 09:20:46
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


a może jakiś przykład?

tz najgorsze nie wiem jak już wypełniony formularz zmusić do wysłania automatycznego bo w taki sposób to będzie mi się daną ilość razy wyświetlał przycisk wyślij, a on powinien mi sam pętlować żeby tego wyślij nie trzeba było naciskać

  1. <?php
  2. $czas = trim($_POST['czas']);
  3. $ilosc = trim($_POST['ilosc']);
  4. $hp = trim($_POST['hp']);
  5. if(empty($czas) and empty($ilosc) and empty($hp)){
  6. echo '<form target="indexprawy" name="formularz" action="http://...indexlewy.php" method="post" >
  7. <input type="text" name="czas" " size="5" maxlength="5" /><br />
  8. <input type="text" name="ilosc" " size="5" maxlength="5" /><br />
  9. <input type="text" name="hp" " size="5" maxlength="5" /><br />
  10. <input type=submit value="Zapisz">
  11. </form>';
  12. }
  13. else
  14.  
  15. for( $x = 0; $x <= $ilosc; $x++ ) {
  16.  
  17. sleep($czas);
  18.  
  19. echo '<form target="indexprawy" name="formularz" action="http://...strona.php'.$hp.'" method="post" >
  20. <input type=submit value="Wyślij">';
  21.  
  22. }
  23.  
  24. ?>


naprawdę nikt nie wie jak tozrobić?

Ten post edytował xsonic 12.03.2010, 13:27:47
Go to the top of the page
+Quote Post
tehaha
post 14.03.2010, 11:21:18
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


powiedz może dokładniej co TY próbujesz osiągnąć, bo ten sposób kombinowania jak na razie wydaje się bez sensu, powinieneś zrobić tak że po wypełnieniu formularza użytkownik klika na wyślij i wtedy skrypt php w pętli wysyła maila. czyli coś na zasadzie
  1. for($i=1;$i<=5;++$i)
  2. {
  3. mail();
  4. }
Go to the top of the page
+Quote Post
xsonic
post 14.03.2010, 15:21:13
Post #7





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


wiec tak mam stronę osadzoną w 2 ramkach lewa to tak jakby spis treści prawa strona stąd te target-y na początku skrypt pyta się o ilość wysłań, czas pomiędzy nimi i zmienną która jest potem podawana w adresie do wysłania formularza po kliknięciu na zapisz to załadowywuje się w index-e lewym i powinno zacząć się wykonywać samo... czyli wysłać mi to np 5 razy poprzez indexprawy do serwera
Go to the top of the page
+Quote Post
tehaha
post 15.03.2010, 10:13:16
Post #8





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Po pierwsze to powinieneś zrezygnować z ramek, bo się często coś w nich chrzani poza tym to już bardzo przestarzały sposób. Po drugie no to robisz praktycznie tak jak Ci napisał furman12.Czyli robisz to tak: u góry tam gdzie masz formularz robisz taki kod:
  1. if(isset($_POST['send']))
  2. {
  3. if(!isset($_POST['repeats']) || !is_numeric($_POST['repeats']))
  4. {
  5. $repeats = '1';
  6. } else
  7. {
  8. $repeats = $_POST['repeats'];
  9. }
  10. if(!isset($_POST['intervals']) || !is_numeric($_POST['intervals']))
  11. {
  12. $intervals = '1';
  13. } else
  14. {
  15. $intervals = $_POST['intervals'];
  16. }
  17.  
  18. for($i=1;$i<=$repeats;++$i)
  19. {
  20. mail();
  21. sleep($intervals);
  22. }
  23. }


Resztę już chyba sam dopasujesz

Ten post edytował tehaha 15.03.2010, 10:14:38
Go to the top of the page
+Quote Post
Pilsener
post 15.03.2010, 14:29:59
Post #9





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Jak chcesz wysyłać tablicę $_POST na dowolny adres dowolną ilość razy to polecam CURL:
http://pl2.php.net/manual/pl/book.curl.php

Ale zapomnij, że użyjesz do tego browsera użytkownika kombinując z ramkami czy JS, prawia każda nowoczesna przegblądarka jest odporna na tego typu machinacje. I jak chcesz wykonać jakieś większe operacje to najlepiej dodać to do crona i wykonać np. w nocy.
Go to the top of the page
+Quote Post
xsonic
post 15.03.2010, 16:21:53
Post #10





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


  1. <?php
  2. $czas = trim($_POST['czas']);
  3. $ilosc = trim($_POST['ilosc']);
  4. $hp = trim($_POST['hp']);
  5.  
  6. if(empty($czas) and empty($ilosc) and empty($hp)){
  7. echo '<form target="indexlewy" name="formularz" action="http://dysk1dysk1.cba.pl/plemiona/indexlewy.php" method="post" >
  8. Czas:<input type="text" name="czas" " size="7" maxlength="7" /><br />
  9. Ilość:<input type="text" name="ilosc" " size="5" maxlength="5" /><br />
  10. H:<input type="text" name="hp" " size="5" maxlength="5" /><br />
  11. <input type=submit value="Zapisz">
  12. </form>';
  13. }
  14. else
  15.  
  16.  
  17.  
  18.  
  19.  
  20. $send = "http://strona&hp=$hp";
  21.  
  22.  
  23. if(isset($_POST['send']))
  24. {
  25. if(!isset($_POST['ilosc']) || !is_numeric($_POST['ilosc']))
  26. {
  27. $ilosc = '1';
  28. } else
  29. {
  30. $ilosc = $_POST['ilosc'];
  31. }
  32. if(!isset($_POST['czas']) || !is_numeric($_POST['czas']))
  33. {
  34. $czas = '1';
  35. } else
  36. {
  37. $czas = $_POST['czas'];
  38. }
  39.  
  40. for($i=1;$i<=$ilosc;++$i)
  41. {
  42. mail($send);
  43. sleep($czas);
  44. }
  45. }
  46.  
  47.  
  48.  
  49. ?>


nie wiem jak to zastosować
Go to the top of the page
+Quote Post
tehaha
post 15.03.2010, 17:25:40
Post #11





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


poczytaj sobie manuala do mail(), bo nie wiem co chciałeś zrobić wstawiając tam jakiś link
Go to the top of the page
+Quote Post
xsonic
post 15.03.2010, 17:47:39
Post #12





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


właśnie ten link ma mi się te np 5 razy otworzyć co jakiś tam czas np 2 s, ale czy ta funkcja to zrobi? w manual-u jest mowa o wysyłaniu mail a ja tego nie chce robić chce żeby po naciśnięciu na przycisk przeglądarkę wysłała te 5 zapytań do serwera o stronę a nie żebym musiał dusić te 5 razy w przycisk

Ten post edytował xsonic 15.03.2010, 17:48:12
Go to the top of the page
+Quote Post
tehaha
post 16.03.2010, 00:27:58
Post #13





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


ale to trochę w złą stronę kombinujesz moim zdaniem, po co wysyłać 5 razy? możesz przecież wysłać raz i potem w pętli 5 razy coś zrobić z tymi danymi i tam ustawić odstęp 2s pomiędzy każdą pętlą. Jeżeli ma być to wysłane do strony na tym samym serwerze to w formularzu w polu action dajesz tam link do tej strony, a jeżeli ma być to wysłane na inny serwer to nie wiem jak to zrobić ale z tego co pisze Pilsener wynika, że to nie taka prosta sprawa
Go to the top of the page
+Quote Post
xsonic
post 16.03.2010, 20:13:23
Post #14





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 11.03.2010

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


ale tam nie ma żadnych danych więcej to ma tylko ten sam link mi otwierać a czemu 5? bo tych operacjii będzie ok 1000

postawiłem sobie serwer z curl ale ma jeszcze pytanie mianowicie jeśli jakaś operacja jest wykonywana curl to jakie ip widzi ten 2 komputer(serwer) osoby która jest za przeglądarką czy serwera na którym stoi curl?
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: 24.07.2025 - 15:03