Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [cURL] POST nie działa.
carck3r
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 9.11.2008

Ostrzeżenie: (0%)
-----


Witam
Mam kod:
  1. <?php
  2.        //--------------
  3.        $link  = $_POST['link'] = 'http://forum.pclab.pl/index.php';
  4.        $pola  = $_POST['pola'] = 'UserName=login&PassWord=haslo';
  5.        $user_agent= $_POST['user_agent'] = 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)';
  6.        //-------------------
  7.  
  8.        //--------------
  9.        $h = curl_init();
  10.        //-------------------
  11.  
  12.        //--------------
  13.        curl_setopt($h, CURLOPT_URL, $link);
  14.        curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
  15.        curl_setopt($h, CURLOPT_POST, 1);
  16.        curl_setopt($h, CURLOPT_POSTFIELDS, $pola);
  17.        curl_setopt($h, CURLOPT_USERAGENT, $user_agent);
  18.        //-------------------
  19.  
  20.        $strona = curl_exec($h);
  21.  
  22.        curl_close($h);
  23.  
  24.        echo 'Wynik działania skryptu: '.$strona;
  25.        ?>


Po wejściu na localhost skrypt nie powoduje zalogowania się na to forum. Dlaczego?

Nikt nie wie dlaczego tak się dzieje?

Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
djstrong
post
Post #2





Grupa: Zarejestrowani
Postów: 65
Pomógł: 9
Dołączył: 22.09.2006

Ostrzeżenie: (0%)
-----


Mogę napisać co bym dodał:
1. Obsługa cookies
2. Inny link
3. Follow location
3. W ostateczności pełne nagłówki
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zapomniałeś dodać obsługi ciasteczek A one są bardzo ważne.
Opcje -> CURLOPT_COOKIEFILE i CURLOPT_COOKIEJAR na http://pl.php.net/curl_set_opt (mozesz tez uzyc szukajki, bylo pare razy na tym forum)

Dodatkowo możesz jeszcze ustawić
CURLOPT_FOLLOWLOCATION na wszelki wypadek jak coś nie będzie działać


--------------------
Go to the top of the page
+Quote Post
carck3r
post
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 9.11.2008

Ostrzeżenie: (0%)
-----


Napisałem:
  1. <?php
  2. /* -------------------- LOGOWANIE -------------------- */
  3.         $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  4.       //--------------
  5.       $link = 'http://forum.pclab.pl/index.php?act=Login&CODE=00';
  6.       $pola  = $_POST['pola'] = 'UserName=xxx&PassWord=xxx';
  7.       $parseURL = parse_url($link);
  8.       //-------------------
  9.  
  10.       //--------------
  11.       $h = curl_init();
  12.       //-------------------
  13.  
  14.       //--------------
  15.       curl_setopt($h, CURLOPT_URL, $link);
  16.       curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
  17.       curl_setopt($h, CURLOPT_POST, 1);
  18.       curl_setopt($h, CURLOPT_POSTFIELDS, $pola);
  19.       curl_setopt($h, CURLOPT_COOKIEJAR, "$DOCUMENT_ROOT/cookie.txt");  
  20.       curl_setopt($h, CURLOPT_COOKIEFILE, "$DOCUMENT_ROOT/cookie.txt");
  21.       curl_setopt($h, CURLOPT_FOLLOWLOCATION, 1);
  22.       //-------------------
  23.  
  24.       $strona = curl_exec($h);
  25.  
  26.       curl_close($h);
  27.  
  28.       echo 'Wynik działania skryptu: '.$strona;
  29. ?>

Ale i tak nie działa. Dlaczego?
W pliku cookie.txt zapisuje się:
Kod
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

.pclab.pl    TRUE    /    FALSE    0    ibf_session_id    936089c0a37c6edcb784c05c4edcb271

Ale i tak się nie loguje...

Ten post edytował carck3r 16.02.2009, 18:28:02
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. $parseURL[host].cookie
  3. ?>

Co to jest...? To ma być ścieżka do pliku...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
carck3r
post
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 9.11.2008

Ostrzeżenie: (0%)
-----


Mam ścieżkę do pliku, ciastka się zapisuje do cookie.txt, ale i tak się nie loguje...
Może mi ktoś to wytłumaczyć jakoś łopatologicznie?

Ten post edytował carck3r 16.02.2009, 18:37:35
Go to the top of the page
+Quote Post
djstrong
post
Post #7





Grupa: Zarejestrowani
Postów: 65
Pomógł: 9
Dołączył: 22.09.2006

Ostrzeżenie: (0%)
-----


Wg mnie to może być tylko nadal zły link, brak referera lub brak pełnych nagłówków.
Go to the top of the page
+Quote Post
carck3r
post
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 9.11.2008

Ostrzeżenie: (0%)
-----


Tym razem nasza-klasa. Do cookie.txt normalnie zapisuje.
  1. <?php
  2. /* -------------------- LOGOWANIE -------------------- */
  3.        $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  4.        $przegladarka='Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.12) Gecko/2008020121 Firefox/2.0.0.12';
  5.         $naglowki=array('Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
  6. 'Accept-Language: pl,en-us;q=0.7,en;q=0.3',
  7. 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7');
  8.      //--------------
  9.      $link = 'http://nasza-klasa.pl/login/';
  10.      $pola  = $_POST['pola'] = 'login=Nxxxnia&password=xxxx';
  11.      //-------------------
  12.  
  13.      //--------------
  14.      $h = curl_init();
  15.      //-------------------
  16.  
  17.      //--------------
  18.      curl_setopt($h, CURLOPT_URL, $link);
  19.      curl_setopt($h, CURLOPT_POST, 1);
  20.      curl_setopt($h, CURLOPT_POSTFIELDS, $pola);
  21.      curl_setopt($h, CURLOPT_COOKIEFILE, "$DOCUMENT_ROOT/cookie.txt");
  22.      curl_setopt($h, CURLOPT_COOKIEJAR, "$DOCUMENT_ROOT/cookie.txt");  
  23.      curl_setopt($h, CURLOPT_FOLLOWLOCATION, 1);
  24.      curl_setopt($h, CURLOPT_USERAGENT, $przegladarka);
  25.        curl_setopt($h, CURLOPT_ENCODING, '');
  26.        curl_setopt($h, CURLOPT_HTTPHEADER, $naglowki);
  27.      //-------------------
  28.  
  29.        curl_exec($h);
  30.  
  31.      curl_close($h);
  32.      
  33.      if(strstr($h, 'Przekierowanie'))
  34. echo 'zalogowano poprawnie, zapis danych do pliku';
  35. else
  36. echo 'złe haslo!';
  37. ?>


Już tyle kombinuję, a i tak nic z tego. Czy ktoś może mi dać gotowy, działający kod, który sobie przeanalizuję?

Czy ktoś może pomóc?

Ten post edytował carck3r 16.02.2009, 22:56:06
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tym razem nasza-klasa.

Już było takich kilku, co sobie chcieli napisać spambota. Myślisz, że serwisy nie są zabezpieczone przed takimi, jak Ty?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:04