Adott a következő kód:
$url='https://url.url';
$post = array ('login' => 'user', 'key' => 'pass');
$post = http_build_query($post);
$cookie=dirname(__FILE__) .'/cookie.txt';
$options = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => 5 ,
CURLOPT_MAXREDIRS => 5,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $post,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)",
CURLOPT_HEADER => TRUE,
CURLOPT_COOKIEJAR => $cookie,
CURLOPT_COOKIEFILE => $cookie,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => 2
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
$tmp_url= get_next_url($result);
$post = get_params($result);
echo $tmp_url."
".$post;
curl_setopt($ch, CURLOPT_URL, $tmp_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
A célja az lenne, hogy bejelentkezik egy oldalra, ott megkeres egy url-t, és aval továbbmegy arra az urlre. A probléma az hogy hiába sikeresen a bejelentkezés nem menti el a cookiekat így a következő oldalnál tulajdonképpen megint a bejelentkező oldalt olvasom be.
Megnéztem (több szerveren is teszteltem) a cookie.txt üres marad. Mi lehet a hiba?
- 1224 megtekintés
Hozzászólások
Tipp:
1. curl_init(LOGIN_OLDAL_URL);
formában?
2. Próbáltad kettőször lekérni az oldalt? Jártam úgy, hogy hiába postoltam a login adatokat a bejelentkező formnak, mindig visszadobott. Aztán, amikor 1. lépésben lekértem magát a login oldalt létrejött a megfelelő cookie, majd ezután egy 2. lépésben lehetett postolni a login adatokat.
Szerk.: találtam egy példát, hogy mire gondoltam.
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
Az egyest kipróbálom.
A kettesnél érdekes amiket mondasz. Bejelentkezni bejelentkezik az oldalra egyből is. A gond akkor van amikor a következő oldalra mennék, az üres cookiefile miatt az visszadob. De azért megpróbálom így is, vesztenivalóm nincs :)
köszi a tippet és a példát is.
- A hozzászóláshoz be kell jelentkezni
Sajnos egyik sem segített.
- A hozzászóláshoz be kell jelentkezni
Megvan a "hiba", sajnos megoldásom nincs rár.
HTTP-vel működik viszont HTTPS-el nem ír a cookie.txt-be. Erre van valakinek megoldása?
- A hozzászóláshoz be kell jelentkezni
Nézz körül a következő opcióknál:
CURLOPT_CAINFO
CURLOPT_CAPATH
CURLOPT_SSL_VERIFYPEER
CURLOPT_SSL_VERIFYHOST
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
Jól értem, hogy a remote szerverhez kellene kapjak "Peer SSL Certificate"-t?
- A hozzászóláshoz be kell jelentkezni
a fentiekkel nekem pl szepen szalad a facebook login.
t
- A hozzászóláshoz be kell jelentkezni
igen de az http protokol és nem https, localhoston ehy példa bejelentkezés nekem is jól müködik, átirányításokat mindent raktam bele...
- A hozzászóláshoz be kell jelentkezni
https-en is szalad.
t
- A hozzászóláshoz be kell jelentkezni