[cURL] Logowanie na stronę.

SzopenPL

Użytkownik
Dołączył
Grudzień 24, 2011
Posty
4
Witam

Chciałbym nauczyć się logować na strony internetowe oraz wyciągać z nich jakiś tekst.
Początkowo zacząłem od własnego skryptu na kompie, który jest logowaniem.

HTML:
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>AUTOMATPHP - logowanie</title>
</head>

<body>
	<form method='post' action="wpisautomat.php">
	<p>Wpisz nazwę użytkownika:
	<input type="text" name="user">
	</p>
	<p>Wpisz hasło:
	<input type="password" name="pass">
	</p>
	<p>
	<input type="submit" name="Submit" value="Zaloguj">
	</p>
	</form>
</body>

</html>

Teraz stworzyłem skrypt który miałby teoretycznie wejść na stronę wpisać login i hasło i przejść do wpisautomat.php co powinno chyba przebiec automatycznie.

PHP:
<?php
 $c = curl_init();

 curl_setopt($c, CURLOPT_URL, "http://127.0.0.1/login.php");
 curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post
 curl_setopt($c, CURLOPT_POSTFIELDS, 'user=Szopen&pass=phpautomatphp'); //dane do wyslania
 curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
 $page = curl_exec($c);
 curl_close($c);
 echo 'Wynik: <br>' .$page;
?>

Jednak wynikiem tego skryptu jest poprostu Wynik: + strona login.php i tak jakby się nic nie stało. Nie wiem co robić. Dopiero zaczynam zabawę z cURLem :)

Ostatecznie chciałbym stworzyć skrypt logujący się na stronie filesonic , filejungle itp. i pobrać z tamtąd tekst w którejś linijce.

Pozdrawiam.
 

kanar123

Użytkownik
Dołączył
Marzec 27, 2008
Posty
451
Jeśli stan zalogowania jest przechowywany w ciasteczkach musisz dodać:
curl_setopt($c, CURLOPT_HEADER , 1);
curl_setopt($c, CURLOPT_COOKIEFILE, './cookie.txt');
curl_setopt($c, CURLOPT_COOKIEJAR,'./cookie.txt');

Czyli całość:

$c
= curl_init();

curl_setopt($c, CURLOPT_URL, "http://127.0.0.1/login.php");
curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post
curl_setopt($c, CURLOPT_POSTFIELDS, 'user=Szopen&pass=phpautomatphp'); //dane do wyslania
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_HEADER , 1);
curl_setopt($c, CURLOPT_COOKIEFILE, './cookie.txt');
curl_setopt($c, CURLOPT_COOKIEJAR,'./cookie.txt');
$page = curl_exec($c);
curl_close($c);
echo
'Wynik: <br>' .$page;


Plik cookie musi istnieć.

edit:
... formularz przesyła zapytanie do

wpisautomat.phpwięc link do niego prawdopodobnie musi być taki sam przy przesyłaniu curlem ;]

curl_setopt($c, CURLOPT_URL, "http://127.0.0.1/wpisautomat.php");
 
Ostatnia edycja:
Do góry Bottom