Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [cURL] Logowanie na moją stronę.
Forum PHP.pl > Forum > Przedszkole
Andaramuxo
Mam oto taki skrypt
Kod
<?php
$cookie = 'cookie.txt';
$hand = curl_init();

curl_setopt($hand, CURLOPT_URL, 'http://mojastrona.pl/login.php');

curl_setopt($hand, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($hand, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($hand, CURLOPT_POST, 1);
curl_setopt($hand, CURLOPT_POSTFIELDS, 'login=XXXXX&password=XXXXXX');

curl_exec($hand);

curl_close($hand);

?>

Gdy wejdę na stronę na której on jest umieszczony wyskakuje komunikat, że się zalogowałem, ale gdy wejdę na strone główną to nie jestem zalogowany. Plik cookie.txt wygląda tak:

# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

mojastrona.pl FALSE / FALSE 0 PHPSESSID 1759d32fd408c892adb22e4ca84a6cb6

Wchodzę sobie w ciasteczka, spisuje zawartość (to te takie liczby na końcu) i wklejam je w tą treść która jest powyżej w pliku cookie.txt (tzn. podmieniam 1759d32fd408c892adb22e4ca84a6cb6 na aktualną zawartość ciasteczka) i o dziwo chodzi, ale gdy usunę ciacho to zawartość sama się zamieni na inną i skrypt znów nie działa. Co zrobić, aby zawartość ciastka (PHPSESSID) sama się zmieniała w pliku cookie.txt?
Jeżeli czegoś nie rozumiecie to z chęcią wyjaśnię.
Pawel_W
spróbuj z inną nazwą ciastka
kilab
CHMOD'y na ciastko dobre ?
erix
Skoro zapisuje plik z ciastkami, to znaczy że są dobre... Sprawa dotyczy czegoś zupełnie innego...

A co do skryptu: to jest logowanie na Twoją stronę? snitch.gif
Andaramuxo
Tak, nie myśl sobie, że chce gdzieś się włamywać czy coś, tylko się uczę, chcesz linka? ^^
Co tu może być źle? Bo wysyła tylko raz plik cookie.txt do serwa, a później go nie aktualizuje. ;( Jak zmienię zawartość tego pliku na aktualne ciacho to działa, ale tak nie ma sensu.
erix
Cytat
Tak, nie myśl sobie, że chce gdzieś się włamywać czy coś, tylko się uczę, chcesz linka? ^^

Tak, tak, każdy się tylko "uczy". tongue.gif

Na innych serwisach to samo? Jeśli nie - masz odpowiedź...
Andaramuxo
Jak na innych serwisach też? A jak chodzi to co jest źle?
erix
Znaczy, że serwer jest w jakiś sposób zabezpieczony. [;
Andaramuxo
To ma ktoś jakiś pomysł żeby plik cookie.txt aktualizował się po wejściu na strone z tym skryptem?

Czemu jest tu napisane FALSE zamiast TRUE?
mojastrona.pl FALSE / FALSE 0 PHPSESSID 1759d32fd408c892adb22e4ca84a6cb6
golaod
Nie przemyślane w żaden sposób przeze mnie jednak może dodaj flagę CURLOPT_FOLLOWLOCATION ?
Andaramuxo
Poradziłem sobie w inny sposób, wywaliłem
Kod
curl_setopt($hand, CURLOPT_COOKIEJAR, $cookie);

a zamiast tego dałem skrypt, który sam generuje cookie tzn. tworzy plik o nazwie podanej w COOKIEFILE i wpisuje to
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
mojastrona.pl FALSE / FALSE 0 PHPSESSID $_COOKIE['PHPSESSID']

gdzie $_COOKIE['PHPSESSID'] to jest właśnie aktualna wartość ciacha, nie wiem czemu COOKIEJAR "zmyśla" sobie tą wartość.
Możecie mi jeszcze wytłumaczyć, dlaczego ta funkcja nawala? Po prostu nie zapisywała dobrej zawartości cookie, ale czemu?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.