xsonic
11.03.2010, 19:19:17
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.
Randallmaster
11.03.2010, 21:26:57
<?php
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) { // wy?wietlamy formularz
echo "<table border=\"0\"><form method=\"post\"> <tr>
<td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >Użytkownik: </font></td>
<td><input type=\"text\" name=\"uzytkownik\" style=\"width: 150px\"></td>
</tr>
<tr>
<td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >Temat: </font></td>
<td><input type=\"text\" name=\"imie\" style=\"width: 150px\" maxlength='20'></td>
</tr>
<tr>
<td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >e-mail: </font></td>
<td><input type=\"text\" name=\"email\" style=\"width: 150px\" maxlength='20'></td>
</tr>
<tr>
<td align=\"right\"><font face=\"ARIAL\" SIZE=\"2px\" >Wiadomo?ć: </font></td>
<td><textarea name=\"tresc\" style=\"width: 300px; height: 70px\"></textarea></td>
</tr>
<tr>
<td> </td>
<td><br><center>
<input type=\"submit\" class=\"wyslij\" name=\"submit\" value=\"Wy?lij\"><alt=\"Wy?lij\"></br></center>
</form>
</tr>
</table>";
}
// sprawdzamy, czy zmienne przesłane z formularza nie s? puste
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) { // jeżeli powyższy warunek jest spełniony tworzona jest wiadomo?ć
// zmienna $message zawiera tre?ć wiadomo?ci
$message = "Użytkownik: $_POST[uzytkownik]\nTemat: $_POST[imie]\ne-mail: $_POST[email]\n\nWiadomo?ć:\n$_POST[tresc]";
// zmienna $header zawiera przede wszystkim adres zwrotny
$header = "From: $_POST[uzytkownik] <$_POST[email]>";
// funkcja mail() za pomoc? której wiadomo?ć zostanie wysłana
@mail("randall.kamil@gmail.com","Zmiana Konta - pracujkalisz","$message","$header") or
die('Nie udało się wysłać wiadomo?ci'); // wy?wietlenie komunikatu w przypadku powodzenia
echo "<div align=\"center\"><font color='#43ae2e'>Wiadomo?ć została wysłana poprawnie! Dziękujemy.</font></div>"; }
// lub w przypadku nie wypełnienia formularza do końca
else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
?>
to kod z mojej strony przerób sobie
xsonic
11.03.2010, 21:47:30
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
<?php
echo '<form target="indexprawy" name="formularz" action="http://...." method="post" > <input type=submit value="Wyślij">
</form>
<script>
function GO(){
setTimeout("subForm()",5000)
}
function subForm(){
document.formularz.submit()
}
onload = GO
</script> ';
?>
Coś takiego mnie interesuje tylko żeby włączało się po naciśnięciu przycisku i powtarzało się 5 krotnie
furman12
12.03.2010, 08:02:32
pętla for oraz if + isset i sleep.
xsonic
14.03.2010, 09:20:46
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ć
<?php
$czas = trim($_POST['czas']); $ilosc = trim($_POST['ilosc']); $hp = trim($_POST['hp']); echo '<form target="indexprawy" name="formularz" action="http://...indexlewy.php" method="post" > <input type="text" name="czas" " size="5" maxlength="5" /><br />
<input type="text" name="ilosc" " size="5" maxlength="5" /><br />
<input type="text" name="hp" " size="5" maxlength="5" /><br />
<input type=submit value="Zapisz">
</form>';
}
else
for( $x = 0; $x <= $ilosc; $x++ ) {
echo '<form target="indexprawy" name="formularz" action="http://...strona.php'.$hp.'" method="post" > <input type=submit value="Wyślij">';
}
?>
naprawdę nikt nie wie jak tozrobić?
tehaha
14.03.2010, 11:21:18
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
for($i=1;$i<=5;++$i)
{
}
xsonic
14.03.2010, 15:21:13
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
tehaha
15.03.2010, 10:13:16
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:
if(isset($_POST['send'])) {
{
$repeats = '1';
} else
{
$repeats = $_POST['repeats'];
}
{
$intervals = '1';
} else
{
$intervals = $_POST['intervals'];
}
for($i=1;$i<=$repeats;++$i)
{
}
}
Resztę już chyba sam dopasujesz
Pilsener
15.03.2010, 14:29:59
Jak chcesz wysyłać tablicę $_POST na dowolny adres dowolną ilość razy to polecam CURL:
http://pl2.php.net/manual/pl/book.curl.phpAle 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.
xsonic
15.03.2010, 16:21:53
<?php
$czas = trim($_POST['czas']); $ilosc = trim($_POST['ilosc']); $hp = trim($_POST['hp']);
echo '<form target="indexlewy" name="formularz" action="http://dysk1dysk1.cba.pl/plemiona/indexlewy.php" method="post" > Czas:<input type="text" name="czas" " size="7" maxlength="7" /><br />
Ilość:<input type="text" name="ilosc" " size="5" maxlength="5" /><br />
H:<input type="text" name="hp" " size="5" maxlength="5" /><br />
<input type=submit value="Zapisz">
</form>';
}
else
$send = "http://strona&hp=$hp";
if(isset($_POST['send'])) {
{
$ilosc = '1';
} else
{
$ilosc = $_POST['ilosc'];
}
{
$czas = '1';
} else
{
$czas = $_POST['czas'];
}
for($i=1;$i<=$ilosc;++$i)
{
}
}
?>
nie wiem jak to zastosować
tehaha
15.03.2010, 17:25:40
poczytaj sobie manuala do mail(), bo nie wiem co chciałeś zrobić wstawiając tam jakiś link
xsonic
15.03.2010, 17:47:39
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
tehaha
16.03.2010, 00:27:58
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
xsonic
16.03.2010, 20:13:23
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?
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.