Autor Zpráva
Sakal
Profil *
Zdravim,
už se v tom hnípu celej den, tak jestli jsem něco přehlídl, ať už tady nebo na Googlu, tak se omlouvám...
Mám script pro stažení souboru z mejch stránek pomocí curl - prozatim mi všude až na banána funguje:
$ch = curl_init(); // create a new CURL resource

        // set URL and other appropriate options
        curl_setopt($ch, CURLOPT_URL, $url_update_modules);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch, CURLOPT_TIMEOUT, 300); # and also for CURL

        $outfile = fopen($soubor_update_modules, 'wb');
        curl_setopt($ch, CURLOPT_FILE, $outfile);

        // grab file from URL
        curl_exec($ch);
        fclose($outfile);

        // close CURL resource, and free up system resources
        curl_close($ch); 

Na zmíněném hostingu mi to ale neukládá obsah dokumentu, co se normálně zobrazí v prohlížeči.
Našel jsem tedy, že se jedná o nastavení CURLOPT_FOLLOWLOCATION ?
Pokud to ale nastavím na true, tak mi to pro změnu hází chybu se safe modem a open_basedir
safe mode mám na off

četl jsem i jiný příspěvky odsud i googlu, ale pořád nevim, co mám teda předělat, upravit, zakázat nebo se obrátit na hosting?
Sakal
Profil *
ještě jsem zapomněl - ukládá mi to todle:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://www.xxx.cz/xxx.php">here</a>.</p>
</body></html>
Davex
Profil
Sakal:
Našel jsem tedy, že se jedná o nastavení CURLOPT_FOLLOWLOCATION ?
Ano, následování přesměrování ovlivňuje parametr CURLOPT_FOLLOWLOCATION.

Pokud to ale nastavím na true, tak mi to pro změnu hází chybu se safe modem a open_basedir
Dřív to bylo bezpečnostní opatření, ale po opravě chyby v knihovně cURL je to bug PHP (Curl a open_basedir?).

Přečti si nové URL z hlavičky Location. Pokud bude relativní, tak se bude muset upravit.

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: