Nejste přihlášeni
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.
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ě
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ěď...
Proím o radu: při použití mysqli lokálně na Wampserveru vše bezvadně funguje, na Endoře ale chybové hlášení, jakoby endora nepodporovala některé funkce mysqli ? Kód viz pod chybovým hlášením. Je možné, že Endora prostě nepodporuje get_result() v mysqli ?
Fatal error: Call to undefined method mysqli_stmt::get_result() in xxx.php
$mysqli = new mysqli(vars::$server, vars::$user, vars::$password, vars::$world);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
$res=NULL;
return $res;
}
mysqli_set_charset("utf8");
if ($stmt = $mysqli->prepare($sql)) {
$stmt->execute();
$res=$stmt->get_result(); // tohle na Endoře nefunguje??? Proč???
$res->fetch_all();
$stmt->close();
}
$mysqli->close();
return $res;