#1 2014-12-09 21:02:32

wota
Člen
Registrován: 2013-04-15
Příspěvky: 4

php curl_exec na serv60 ?

Funguje v php curl_exec? Z lokáního WAMPSERVERu mám rozchozenou aplikaci, ale na endoře je curl zřejmě částečně nefunkční?

Je funkční curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); ?

údajně potřebuje
open_basedir none
safe_mode off
ale možná je to už stará informace... našel jsem i jiné informace

děkuji za odpověď...

Upravil wota (2014-12-09 22:56:42)

Offline

#2 2014-12-09 23:49:32

JF
Endora rádce
Místo: ....nice u Plzně
Registrován: 2010-06-22
Příspěvky: 11,945

Re: php curl_exec na serv60 ?

Malo by korektne fungovať, osobne používam. Skúšali ste to?


Ján Fačkovec - Endora.cz by Webglobe
Email, Web, Webadmin, Webmail, Nápověda, Ceník

Offline

#3 2014-12-10 00:15:26

wota
Člen
Registrován: 2013-04-15
Příspěvky: 4

Re: php curl_exec na serv60 ?

http://nad-labskou-cyklostezkou.g6.cz/pocasi/
Tohle mi z domova funguje a z Endory ne, první curl_exec() na Endoře vrací "object moved to" namísto html kódu první stránky. Následně druhé curl_exec() nevrací správnou stránku, protože potřebuje cookie z prvního dotazu. Je to ekvivalent kliknutí na konkrétní lokalitu ze seznamu lokalit na první stránce (používá se tam pro vynucení kliknutí cookie). Cílem je natáhnout data z tabulky do mého sql, aby byly k dispozici data za delší časový úsek plus možnost varování (je to povodňový potok). Data v grafu jsou načtená z mého lokálního PC, na Endoře nová data nepřibývají, na mém PC vše funguje jak má, průběžně načítám nová data z toho webu. Použití je pouze soukromé, neveřejné.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://dvt-info.cz/web_seso/dvtsite_pub … ewMap.aspx');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //  doplneno
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile.txt");
curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result1 = curl_exec($ch);
$a=(strlen($result1));
echo $a." "; // délka stringu by měla být  67177 znaků, 154 je chybně
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_URL, 'http://dvt-info.cz/web_seso/dvtsite_pub … site=DE-12');
$result2 = curl_exec($ch);
$a=(strlen($result2));
echo $a; // délka stringu by měla být 48076 znaků, 154 je chybně

Offline

#4 2014-12-10 00:22:51

JF
Endora rádce
Místo: ....nice u Plzně
Registrován: 2010-06-22
Příspěvky: 11,945

Re: php curl_exec na serv60 ?

https://www.fackovec.cz/curl.php - uložil som váš kód ale dal som vypísať obsah result1 i 2 a hlási to Bad Request. Je možné že daný server blokuje rozsah IP endory, keďže vám to z vlastného PC funguje.


Ján Fačkovec - Endora.cz by Webglobe
Email, Web, Webadmin, Webmail, Nápověda, Ceník

Offline

#5 2014-12-11 18:17:26

wota
Člen
Registrován: 2013-04-15
Příspěvky: 4

Re: php curl_exec na serv60 ?

zdá se, že problém je v tom, že cookies se přenášejí jednosměrně, při načítání z  vnějšího webu se cookies pro session načtou (vidím je v příslušné složce v cookiejar), ale při další akci se z Endory na vnější web hodnoty cookies nedostanou. Když načítám paralelně z mého lokálního PC a ihned na to z Endory, je session aktivní i z pohledu php na endoře, a data po dobu platnosti cookie načtu i do mé databáze na Endoře. Po vypršení platnosti cookie jsou data na vnějším webu opět nedostupná, cookie se ve složce mezi php kódem vytvoří (je vidět v cookiejar a má správnou aktuální hodnotu id), ale vnější web o něm neví, zřejmě na něj cookie neprojde přes keše atd.? Soubory s kódem HTML se načítají, přenášení hodnot cookies ale částečně-jednosměrně vázne.

Upravil wota (2014-12-11 18:18:24)

Offline

Zápatí

Založeno na FluxBB | CZ a SK