Autor Zpráva
Metes
Profil *
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
fopen, file_get_contents
srigi
Profil
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 *
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 *
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
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
srigi
nespecifikoval, ze chce POST, formulare odesilaji bud GET nebo POST.
srigi
Profil
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
srigi
znam a pouzivam curl, bohuzel ale take vim o jeho male podpore na hostingach (alespon tech levnejsich), proto jsem jej nezminil

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0