Witajcie,
Ostatnio borykam się z dużym problemem związanym z nowym projektem. Mianowicie chodzi po pobieranie plików z hostuje.net poprzez bibliotekę CURL w PHP'ie.
Kod roboczy aktualnie przedstawia się tak:
<?php
$id = $_GET['id'];
/*
Połączenie z serwisem hostuje.net
*/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://hostuje.net/file.php?id=".$id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt
($ch, CURLOPT_COOKIEFILE
, dirname(__FILE__) . '/cookie.txt');curl_setopt
($ch, CURLOPT_COOKIEJAR
, dirname(__FILE__) . '/cookie.txt');$strona = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
/*
Prasowanie danych z serwisu hostuje.net
*/
$serw = preg_match_all('|<input type="hidden" name="k" value="(.*)">|U', $strona,$serw1); $nazwa = preg_match_all('|<input type="hidden" name="name" value="(.*)">|U',$strona,$nazwa1);
$rozmiar = preg_match_all('|<b>Rozmiar kontrolny w bajtach:</b>(.*)<br>|U',$strona,$rozmiar1);
/*
Zbieranie wszystkich danych potrzebnych do pobrania
*/
$serwer = str_replace(".hostuje.com.pl","",$serw1[1
][0
]);
$link_pobrania = "http://".$serw1[1][0]."/_tmp/id-".$id."-p-1.mp3";
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $link_pobrania);
curl_setopt($c, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt
($c, CURLOPT_COOKIEFILE
, dirname(__FILE__) . '/cookie.txt');$strona = curl_exec($c);
$nag = curl_getinfo($c, CURLINFO_HTTP_CODE);
curl_close($c);
?>
Wszystko działa pod warunkiem że najpierw wejdę ręcznie na link np:
http://hostuje.net/file.php?id=ea2a6eebe59...53b5a14bfbf6397 i potem chcę pobrać ten sam plik przez mój skrypt to wszystko pójdzie bez problemu. Ale jeśli nie wejdę ręcznie w link do danego pliku to niestety ale skrypt wtedy zawodzi. Wydaje mi się że problem leży tutaj gdzieś po stronie sesji, borykał się ktoś z was kiedyś z podobnym problemem?
--
Z góry dzięki za odp
Ten post edytował japan13 15.09.2013, 20:35:49