Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][curl] Logowanie nie działa - brak błędu
Forum PHP.pl > Forum > Przedszkole
MagiQ
Witam

Mam problem logowaniem do strony za pomoca curl-a. Strona się otwiera, logowanie się jedna nie udaje a co gorsza nie wyświetla się żaden błąd. Plik php odpalam z localhost (xampp).


  1.  
  2. <?php
  3.  
  4. $ch = curl_init();
  5.  
  6. $data = [
  7. 'email' => 'ponuryzniwiarz1@onet.pl',
  8. 'password' => 'ponuryzniwiarz1'
  9. ];
  10.  
  11. $url = 'https://www.gedmatch.com/login1.php';
  12.  
  13. curl_setopt($ch, CURLOPT_URL,$url);
  14. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
  15. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  16. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  17. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
  18. curl_setopt($ch, CURLOPT_POST, true);
  19. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  20. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  21.  
  22. $output = curl_exec($ch);
  23.  
  24. if (curl_error($ch)) {
  25. echo curl_error($ch);
  26. }
  27. else {
  28. echo $output;
  29. }
  30.  
  31. curl_close ($ch);
  32.  
  33. ?>
  34.  




Z analizy nagłowka żądania wynika że może to problem z ciasteczkiem. Ciasteczko się jednak generuje prawidłowo i ma taką strukturę:
  1. www.gedmatch.com FALSE / FALSE 1506162165 PHPSESSID 1dc9ps7uhgcd4hi7r2urpll4l2


Proszę o poradę dla początkującego jak ugryźć ten problem.



Cytat(MagiQ @ 23.09.2017, 13:12:05 ) *
Witam

Mam problem logowaniem do strony za pomoca curl-a. Strona się otwiera, logowanie się jedna nie udaje a co gorsza nie wyświetla się żaden błąd. Plik php odpalam z localhost (xampp).


  1.  
  2. <?php
  3.  
  4. $ch = curl_init();
  5.  
  6. $data = [
  7. 'email' => 'ponuryzniwiarz1@onet.pl',
  8. 'password' => 'ponuryzniwiarz1'
  9. ];
  10.  
  11. $url = 'https://www.gedmatch.com/login1.php';
  12.  
  13. curl_setopt($ch, CURLOPT_URL,$url);
  14. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
  15. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  16. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  17. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
  18. curl_setopt($ch, CURLOPT_POST, true);
  19. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  20. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  21.  
  22. $output = curl_exec($ch);
  23.  
  24. if (curl_error($ch)) {
  25. echo curl_error($ch);
  26. }
  27. else {
  28. echo $output;
  29. }
  30.  
  31. curl_close ($ch);
  32.  
  33. ?>
  34.  




Z analizy nagłowka żądania wynika że może to problem z ciasteczkiem. Ciasteczko się jednak generuje prawidłowo i ma taką strukturę:
  1. www.gedmatch.com FALSE / FALSE 1506162165 PHPSESSID 1dc9ps7uhgcd4hi7r2urpll4l2


Proszę o poradę dla początkującego jak ugryźć ten problem.

viking
Strona którą tutaj podałeś jest pusta więc co ma zwrócić?
MagiQ
Chwilowa awaria serwera - czasem tak mają.

Widze że postawili już serwer na nogi więc strona jest już aktywna.

Cytat(viking @ 25.09.2017, 12:32:26 ) *
Strona którą tutaj podałeś jest pusta więc co ma zwrócić?

viking
Wysyłasz dane w przeglądarce, zakładka sieć, kopiuj jako curl.
https://incarnate.github.io/curl-to-php/ wklejasz, kopiujesz, poprawiasz.

Cytat
// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://www.gedmatch.com/login2.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "email=ponuryzniwiarz1@onet.pl&password=ponuryzniwiarz1");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$headers = array();
$headers[] = "Host: www.gedmatch.com";
$headers[] = "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0";
$headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$headers[] = "Accept-Language: pl,en-US;q=0.7,en;q=0.3";
$headers[] = "Content-Type: application/x-www-form-urlencoded";
$headers[] = "Referer: https://www.gedmatch.com/login1.php";
$headers[] = "Connection: keep-alive";
$headers[] = "Upgrade-Insecure-Requests: 1";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);

$output = curl_exec($ch);
var_dump($output);
if (curl_error($ch)) {
echo curl_error($ch);
}
else {
echo $output;
}

curl_close ($ch);

?>


tadam.
MagiQ
Dzięki za wskazówkę. Skrypt poszedł poprawnie !
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.