Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyłanie ciateczek w cURL'u?
Forum PHP.pl > Forum > PHP
kubek15
Witam. Poczytałem trochę o cULR'u i mam taki kod, jeden koleś pisał mi że muszę przesłać ciasteczka , lub sesje żeby wyświetliło mi zalogowaną stronę, ale nie wiem dlaczego mi ten kod nie działa.
  1. <?php
  2. $cookie = 'plik_cookie';
  3.  
  4.       $curl = curl_init();
  5.       curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
  6.       curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
  7.       curl_setopt($curl, CURLOPT_URL, 'http://www.webcron.pl/index.html' );
  8.       curl_setopt($curl, CURLOPT_POST, 1);
  9.       curl_setopt($curl, CURLOPT_POSTFIELDS, 'username=*****&password=*****');
  10.       curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  11.       $result = curl_exec($curl);
  12.       curl_close($curl);
  13. ?>


może tą zmienną cookie mam coś do nie dopisać? albo wogóle jej nie dawac na początku?
sowiq
Ja bym na początek proponował obejrzeć nagłówki żeby dokładnie zbadać, co jest wysyłane POST'em.

Jak dla mnie to tam jeszcze leci zmienna login_send = true. Dopisz ją do listy POSTFIELDS i sprawdź.

A co do COOKIE - wszystko jest ok, ale pod warunkiem, że podany plik istnieje z prawami do zapisu, albo skrypt ma prawa do jego utworzenia.
1010
Powinna w zmiennej być przypisana ścieżka do pliku z ciastkiem.

Jeżeli chcesz przesłać ręcznie cookie czyli zmienna -> wartość, zmienna -> wartość to korzystasz z CURLOPT_COOKIE

  1. <?
  2. $cookie = 'c1=' . urlencode('wartość1') . '; c2=' . urlencode('wartość2');
  3. $ch = curl_init('http://localhost/curl/site.php');
  4. curl_setopt($ch, CURLOPT_HEADER, 1);
  5. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  6. curl_exec($ch);
  7. curl_close($ch);
  8. ?>


Przykład zapożyczony z artykułu cURL cz. 1: Podstawy i protokół HTTP

Tam też więcej informacji na ten temat.
kubek15
no mieliście racje dodałem ten wpis i troche poczytałem i działa. A teraz inne pytanie jak się już tam zaloguje to pojawia mi pewien przycisk w jakims formularzu i można też to ustawic na curl'u aby to sam wciskał? Jeżeli tak to jakie funkcje będą potrzebne bo próbowałem te same i nic smile.gif .
a ten drugi formularz wygląda tak:
  1. <?php
  2. <form name=change_point_alert method=POST action=konto.html>
  3.  
  4.            <input type=hidden name=add_points value=true>
  5.            <button type=submit class=pole_login>Dodaj</button>
  6. </form>
  7. ?>
1010
Po prostu przez post musisz dla add_points ustawic wartosc true
sowiq
@kubek15,
cURL nie służy do automatycznego wciskania przycisków, tylko do budowania zapytań HTTP. A żeby zbudować zapytanie takie samo, jakie leci po wciśnięciu przycisku musisz przeanalizować kod HTML strony z formularzem (ew. nagłówki). Automatycznie, albo ręcznie.
kubek15
Wielkie dzięki juz łapie o co chodzi i działa mi wszystko.
Ten cURL jest fajny duzo w nim można botów napisac


T H X
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.