Autor Zpráva
BuGeR
Profil
Zdravím. Na internetu jsem našel tento kód (upravil jsem některé hodnoty):

curl_setopt($ch, CURLOPT_URL, 'http://live-fun.cz/tests/form.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "jmeno=test&heslo=test");
curl_setopt($ch, CURLOPT_COOKIEJAR, '/www/tests/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/www/tests/cookie.txt');

$first = curl_exec($ch);
$second = curl_exec($ch);


Bohužel, když ho spustím, objeví se jen bíla obrazovka a formulář se neodešle - pokud by se odeslal přišel by mi na email.
Poradíte mi prosím někdo, kde mám chybu?
Děkuji, B.
PostCC
Profil
Jestli můžu hádat, tak při pohledu na obsah toho odkazu zjišťuji, že formulář odesílá po provedení (stisku tlačítka Submit) data nikoli na stránku "http://live-fun.cz/tests/form.php", nýbrž na "http://live-fun.cz/tests/form.php?go". Není tedy chyba v chybějícím parametru URL?
BuGeR
Profil
Opravil jsem to, nyní se to zpracuje na stejné adrese. Ale pořád to nefunguje..
PostCC
Profil
Dobře, jen pro pořádek - samozřejmě to není celý script, že? V úvodu chybí inicializace session, tzn. něco jako:

$ch = curl_init();


Věřím, že v testovacím scriptu tohle máte?
BuGeR
Profil
Nemám, s Curl právě začínam a snažím se ho naučit.. je třeba ještě něco nad/pod ten kód doplnit?
PostCC
Profil
Bude to jako první řádek, kde se proměnná $ch coby curl session inicializuje. Celé to tedy bude:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://live-fun.cz/tests/form.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "jmeno=test&heslo=test");
curl_setopt($ch, CURLOPT_COOKIEJAR, '/www/tests/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/www/tests/cookie.txt');
$result = curl_exec($ch);
Echo $result;


Po provedení se do proměnné $result uloží obsah načtené stránky (tedy například výstupní informace o průběhu odesílání mailu, prostě to, co vidíte přímo ve stránce na adrese http://live-fun.cz/tests/form.php pokud byste odeslal údaje pomocí formuláře. A současně by měl dorazit mail.

Nicméně pokud máte ve správě server, jehož pomocí se snažíte odesílat, je poměrně hodně krkolomné a zbytečné to řešit přes curl, lépe volat akci přímo v těle scriptu.
BuGeR
Profil
Děkuji moc :) už to funguje

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0