Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Curl i sesje php
Forum PHP.pl > Forum > PHP
binary_search
Tak więc podczas pracy z cURLem napotkałem coś dziwnego. Wyniki skryptu wskazują na to, że korzystanie z $_SESSION nie jest zapamiętywane, efekt jest taki, jakby na stronę wchodziło się po raz pierwszy za każdym razem. Najlepiej jest to zobrazować kodem.
Kod strony wykorzystującej sesje
  1. <?php
  2.    session_start();
  3.    if(!isset($_SESSION['i']))$_SESSION['i']=0;
  4.    echo ++$_SESSION['i'].' '; //wypisanie i zwiększenie licznika
  5. ?>

Kod skryptu curl pobierającego stronę kilkukrotnie
  1. <?php
  2. $c=curl_init();
  3. curl_setopt($c, CURLOPT_URL, $adres); //adres strony
  4. curl_setopt($c, CURLOPT_COOKIESESSION, 1); //probowalem roznych ustawien, ale nic nie pomoglo
  5. $t=5;
  6. while($t--)curl_exec($c);
  7. curl_close($c);
  8. //wynik skryptu:
  9. //1 1 1 1 1
  10. //oczekiwany wynik:
  11. //1 2 3 4 5
  12. ?>

Wiem, że za obsługę sesji realizuje serwer i wygląda na to, że za każdym razem, gdy pobieram stronę widzi unikalną wizytę. Jak sprawić, abym pozostał w obrębie jednej sesji?
hostingekspert
sesje zapisywane są domyślnie na ciachach, więc może dodaj
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

a jeśli nie to może próbowałeś całość umieścić w pętli, począwszy od curl_init()? być może curl_exec() jest cachowane (questionmark.gif)
em1X
Może nie tyle sesje co ich identyfikatory. Przekaż identyfikator z ciastka, które otrzymujesz od serwera i sesja będzie trwać.
binary_search
Dziękuję za zainteresowanie tematem, zastosowałem ciacha na plikach i wszystko gra.

PS. do osób które trafią tu z Googla winksmiley.jpg
wystarczy lekko przerobić jeden z przykładowych kodów z manuala smile.gif
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.