Autor | Zpráva | ||
---|---|---|---|
Metes Profil * |
#1 · Zasláno: 3. 12. 2008, 09:05:37
Dobrý den,
lze nějak odeslat formulář pouze scriptem bez použití prohlížeče? Jde mi o to, že chci cronem spouštět script, který vyplní formulář a ten se mi automaticky odešle na jinou stránku. Jde to nějak udělat? Děkuji za informace. |
||
Majkl578 Profil |
#2 · Zasláno: 3. 12. 2008, 09:19:26
fopen, file_get_contents
|
||
srigi Profil |
#3 · Zasláno: 3. 12. 2008, 09:27:49
Majkl578
Pochybujem, ze pomocou tychto funkcii spravis POST request. Metes Potrebujes na to extension cURL (bezne byva zapnute a aj na localhoste funguje dobre, staci odkomentovat v php.ini). Priklad jednoducheho POST requestu: < ?php //bot.php $url = "http://localhost/wtf/target.php"; $ch = curl_init(); // set the target url curl_setopt($ch, CURLOPT_URL,$url); // howmany parameter to post curl_setopt($ch, CURLOPT_POST, 1); // the parameter 'username' with its value 'johndoe' curl_setopt($ch, CURLOPT_POSTFIELDS,"username=johndoe"); $result= curl_exec ($ch); curl_close ($ch); print $result; ?> |
||
Metes Profil * |
#4 · Zasláno: 3. 12. 2008, 09:42:37
srigi
Perfektní, přesně to jsem potřeboval. Ještě jestli mi prosím můžete poradit jak odeslat více postů (potřebuji jich odeslat 5). Zkouším to takto, ale bezvýsledně: curl_setopt($ch, CURLOPT_POSTFIELDS,"username=johndoe", "username2=johndoe2"); curl_setopt($ch, CURLOPT_POSTFIELDS,"username=johndoe"; "username2=johndoe2"); curl_setopt($ch, CURLOPT_POSTFIELDS,"username=johndoe,username2=johndoe2"); curl_setopt($ch, CURLOPT_POSTFIELDS,"username=johndoe;username=johndoe"); atp. Děkuji mnohokrát. |
||
Metes Profil * |
#5 · Zasláno: 3. 12. 2008, 09:59:54
Už jsem si poradil.
Stačil letmý náhled do manuálu. Správně je to curl_setopt($ch, CURLOPT_POSTFIELDS,"username=johndoe&username2=johndoe2"); Děkuji. |
||
srigi Profil |
#6 · Zasláno: 3. 12. 2008, 10:09:44 · Upravil/a: srigi
Metes
cca takto: <?php //bot.php $url = "http://localhost/wtf/target.php"; //set POST variables $fields = array( 'fname' => urlencode($first_name), 'title' => urlencode($title), 'company' => urlencode($institution), 'age' => urlencode($age), 'email' => urlencode($email), 'phone' => urlencode($phone) ); //url-ify the data for the POST foreach ($fields as $key => $value) { $fields_string .= $key . '=' . $value . '&'; } rtrim($fields_string, '&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); $result= curl_exec ($ch); curl_close ($ch); print $result; ?> |
||
Majkl578 Profil |
#7 · Zasláno: 3. 12. 2008, 20:05:58
srigi
nespecifikoval, ze chce POST, formulare odesilaji bud GET nebo POST. |
||
srigi Profil |
#8 · Zasláno: 3. 12. 2008, 20:29:38
Majkl578
jasnacka, ale ked uz formular, tak POST je spravnejsia volba. Inak cURL vyskusaj, isto sa ti zapaci, vie to kopec veci, ako posielanie headrov a podobne kravinky, takze ked je to dostupne, preco to nevyuzit. |
||
Majkl578 Profil |
#9 · Zasláno: 3. 12. 2008, 22:20:38
srigi
znam a pouzivam curl, bohuzel ale take vim o jeho male podpore na hostingach (alespon tech levnejsich), proto jsem jej nezminil |
||
Časová prodleva: 15 let
|
0