Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cURL nietypowe logowanie
Forum PHP.pl > Forum > PHP
radian19
Witam mam problem z logowaniem za pomocą cURL na stronie z racji tego że dopiero zaczynam php nie wiem jak to ugryźć.

Dodatek liveHTTPHeader daje mi takie wartości przy logowaniu

Kod
http://panelhurtowy.wikr.com.pl/panel/inc/proxy.php

POST /panel/inc/proxy.php HTTP/1.1
Host: panelhurtowy.wikr.com.pl
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://panelhurtowy.wikr.com.pl/panel/
Content-Length: 42
Cookie: __utma=134069775.1051317837.1346259590.1348775732.1348809840.3; __utmz=134069775.1348775732.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utmb=134069775.1.10.1348809840; __utmc=134069775
Pragma: no-cache
Cache-Control: no-cache
method=login&login=MójLogin&password=MojeHasło
HTTP/1.1 200 OK
Date: Fri, 28 Sep 2012 05:28:04 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 161
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html


dodam że strona przy logowaniu nie przechodzi pod inny adres wszystko dzieje się tak jak by w aplikacji w jednym otwartym oknie bez odświeżania.

Arcioch
Hej wink.gif

Logowanie jest zrobione ajaxem. Musisz wysłać 3 dane Postem na adres "http://panelhurtowy.wikr.com.pl/panel/inc/proxy.php". Dane to method=login&login=TuTwójLogin&password=TuTwojeHasło smile.gif Czyli piszesz mniej więcej coś takiego

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_URL, 'http://panelhurtowy.wikr.com.pl/panel/inc/proxy.php');
  3. curl_setopt($ch, CURLOPT_POST, false);
  4. curl_setopt($ch, CURLOPT_POST, 1);
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  6. 'method' => 'login',
  7. 'login' => 'TuTwójLogin',
  8. 'password' => 'TuTwojeHasło'
  9. ));
  10. curl_setopt($ch, CURLOPT_AUTOREFERER, true);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  12. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:','X-Requested-With: XMLHttpRequest', 'Connection: Keep-Alive'));
  13. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1");
  14. $result = curl_exec($ch);
  15. curl_close($ch);


Musisz po testować i po dodawać odpowiednie nagłówki wink.gif
radian19
Wkleiłem twój kod ale skąd mam wiedzieć że poprawnie się zalogowałem.

Próbuje wyświetlić stronę przy użyciu echo $ch; ale nic z tego.

Jak już pisałem zielony jestem a potrzebuje bardzo prostego skryptu.
Arcioch
Pod zmienna $result będziesz miał stronę wink.gif tylko to jest ajax więc musi być jakieś przekierowywanie tego albo jakiś dane jsonem wysłane wink.gif Nie gwarantuje że to działa bo musiałbym mieć dane do logowania aby sprawdzić poprawność kodu.
radian19
Czego musiałbym się nauczyć żeby to rozgryźć?


Strona wywala komunikat
Kod
{"success":true,"tipmessages":[["KOMUNIKAT|Logowanie poprawne"]],"data":[{"token":"07748;0fcdf4197e8e377733467d494894f770"}],"timestamp":"2012-09-28 12:22:16"}


Nic mi to nie mówi nerdsmiley.png
Crozin
To są dane zapisane w formacie JSON, w PHP możesz je zamienić na zwykłą tablicę przy pomocy json_decode.
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.