Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Curl] Logowanie
Forum PHP.pl > Forum > PHP
jerry89
Witam,
mam taki kod i nie moge za nic zalogować się na pcworld.pl:

  1.  
  2. curl('https://www.pcworld.pl/rejestracja/logowanie/');
  3. function curl1($url)
  4. {
  5. $ch = curl_init($url);
  6. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1) Gecko/20061024 BonEcho/2.0");
  7. curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  8. curl_setopt($ch, CURLOPT_COOKIEJAR, "c.txt");
  9. curl_setopt($ch, CURLOPT_COOKIEFILE, "c.txt");
  10. curl_setopt($ch, CURLOPT_POST, true);
  11. curl_setopt($ch, CURLOPT_POSTFIELDS, 'login=mojlogin&haslo=mojehaslo');
  12. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  13. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  14.  
  15. $html =curl_exec($ch);
  16.  
  17.  
  18. return $html;
  19. }


Moglby mi ktos pomóc?
Pozdrawiam
karolrynio
Sprawdź czy c.txt ma prawo do zapisu.
wry
zauwaz ze w js jest przepisywana akcja formularza logowania

document.getElementById("logN").action = 'https://logowanie.idg.pl/rejestracja/przepisz/';
Fifi209
Zainstaluj sobie liveheaders do firefoxa i zobacz jakie nagłówki wysyła, może coś pominąłeś?
jerry89
Plik ten ma prawa do zapisu i odczytu.
Mam też liveheaders i oprócz loginu i hasla wysyla równiez ukryte pole strona=http://pcworld.pl ale tak równiez próbowałem i nie idzie...


@wry, co mogę w takiej sytuacji zrobić?
wry
sprobuj skierowac curla odrazu na
https://logowanie.idg.pl/rejestracja/przepisz/
i wysli pole strona z wartoscia http://logowanie.idg.pl/badlogin.asp
z tego co widze ze strony przychodzi tylko ciastko sesji, moze szyfrowanei polaczenie robi problem
jerry89
Cytat(wry @ 20.11.2009, 11:49:25 ) *
sprobuj skierowac curla odrazu na
https://logowanie.idg.pl/rejestracja/przepisz/
i wysli pole strona z wartoscia http://logowanie.idg.pl/badlogin.asp
z tego co widze ze strony przychodzi tylko ciastko sesji, moze szyfrowanei polaczenie robi problem


NIestety nic z tego..
blusss1
Tu masz prosty skrypt do logowania którego używam ja:
Kod
<?php
session_unset(); //dokonujemy zwolnienia wszystkich zmiennych sesyjnych używając tej funkcji
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Proszę się zalogować</title>
</head>

<body>
<form method="post" action="plik_dostepny_po_zalogowaniu.php">
<p>login:
<input type="text" name="user" />
</p>
<p>hasło:
<input type="password" name="pass" />
</p>

<input type="submit" name="Submit" value="Wyślij" />
</p>

</form>
</body>
</html>


Wygląd pliku: "plik_dostepny_po_zalogowaniu.php"
Kod
<?php
ob_start();

session_start();                                         //uruchamia sesję
$_SESSION['username']=$_POST['user'];                     //wartość wpisana z formularza
$_SESSION['userpass']=$_POST['pass'];                     //wartość wpisana z formularza
$_SESSION['authuser']=0;                                                         //sprawdza informacje o nazwie użytkownika i haśle
if(($_SESSION['username']=='wpisz tu login jaki ma być akceptowany') and ($_SESSION['userpass']=='a tutaj hasło po którym ma się logować'))
    {
        $_SESSION['authuser']=1;     //jeśli przekazano poprawną kombinację nazwy użytkownika i hasła, ustawia zmienną sesyjną authuser na 1
    }
else
    {
        echo "Przepraszamy, ale nie masz uprawnień do zobaczenia tej witryny";
        exit();
    }
?>
<html>
tutaj masz dalej kod swojej strony
</html>


Mam nadzieje że to coś ci pomoże
wr24
blusss jerry'emu chyba nie o to chodzilo smile.gif
jerry sprobuj dostawic takie opcje

curl_setopt($rC, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($rC, CURLOPT_SSL_VERIFYHOST, false);

url ustaw na
https://logowanie.idg.pl/rejestracja/przepisz/

przeslane dane na:
login=xxx&haslo=yyy&strona=http://www.pcworld.pl/news/

jesli dalej nie bedzie smigac wysweitl curlem zawartosc strony
https://www.pcworld.pl/rejestracja/logowanie/
sprawdz czy cos sie wyswietli
jerry89
wr24, Wieeelkie dzięki. Logowanie zadzialało. Wszystko smiga jak nalezy. smile.gif
amii
Hmm to może ktoś mi mógł by pomóc bo mam taki kod...
  1. $
  2. ch = curl_init('http://www.maluchy.pl/forum/index.php?act=Login&CODE=01&CookieDate=1');
  3. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1) Gecko/20061024 BonEcho/2.0");
  4. curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  5. curl_setopt($ch, CURLOPT_COOKIEJAR, "c.txt");
  6. curl_setopt($ch, CURLOPT_COOKIEFILE, "c.txt");
  7. curl_setopt($ch, CURLOPT_POST, 1);
  8. curl_setopt($ch, CURLOPT_POSTFIELDS, 'UserName=mojuser&PassWord=mojehaslo');
  9. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  10. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  11. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  12. curl_exec($ch);
  13. curl_close($ch);


Problem tutaj to chyba ta zmienna s, jest to jakiś identyfikator sesji, który zmienia się za każdym logowaniem wie ktoś z Was jak to ominąć próbowałem już praktycznie wszystkiego :/
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.