Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [curl] niepotrzebne przekierowanie po połączeniu
Forum PHP.pl > Forum > Przedszkole
dado
Nie wiem czy ktoś z was zetknął się juz z podobnym problemem: mianowicie: przez CURL wysyłam dane metoda POST do strony gdzie wymagane jest logowanie: login, haslo itd. Problem jest w tym źe strona z którą łączy się CURL (http://www.example.com/logowanie.php) po poprawnym zalogowaniu robie przekierowanie na inną podstronę (http://www.example.com/index.php?login=1&sid=gth045gh8).

Skutkiem czego do przeglądarki gdzie odpalony jest skrypt wykorzystujący CURL dopisują się dane z przekierowania (?login=1&sid=gth045gh8) strony wywoływanej przez CURL (&sid=costam&login=1...) i wywala mi to błąd.

  1. <?php
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, "http://www.example.com/logowanie.php");
  4. curl_setopt($ch, CURLOPT_POST, 1);
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, 'login=aaa&haslo=aaa');
  6. $data = curl_exec($ch);
  7. curl_close($ch);
  8. ?>


ten przykład jest bardzo prosty ale juz na nim pojawia sie problem którym mowa. Proszę o pomoc. Może załatwia to jakiś parametr.
Kicok
curl_setopt" title="Zobacz w manualu PHP" target="_manual

Jeśli strona example.com wysyła nagłówek: Location: ?login=1&sid=gth045gh8, to zainteresuj się flagą CURLOPT_FOLLOWLOCATION. Tyle powinno wystarczyć.

Jeśli strona example.com wysyła kod HTML, w którym jest <meta http-equiv="Refresh" content="0; ?login=1&sid=gth045gh8" /> to zainteresuj się flagą CURLOPT_RETURNTRANSFER oraz wyrażeniami regularnymi do wyciągnięcia adresu strony, z którą będziesz się musiał połączyć ponownie (jeszcze raz wykonując curl_init(); (...) curl_close(); )
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.