Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php CURL] 2 sesje, przesyłanie danych sesji przy jednoczesnym użyciu sesji w CURL
messer07
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 27.09.2010

Ostrzeżenie: (0%)
-----


Witam,

mam problem z przesyłaniem danych sesji w momencie posiadania 2 osobnych sesji w tym jednej przez CURL


pierwszy plik: login.php - wysyła komendę logowania do zdalnego serwera, logowanie następuje poprawnie, ponieważ dodanie do login.php echo $kod, potwierdza prawidłowe wykonie komendy curl

  1. <?php
  2. function send_command($command){
  3. $ch = curl_init();
  4. curl_setopt($ch,
  5. CURLOPT_URL,$url);
  6. curl_setopt($ch, CURLOPT_HEADER, 0);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  8. curl_setopt($ch, CURLOPT_POST, 1);
  9. curl_setopt($ch, CURLOPT_POSTFIELDS, $command);
  10. curl_setopt($ch, CURLOPT_COOKIEFILE, '/home/test/cookies.txt');
  11. curl_setopt($ch, CURLOPT_COOKIEJAR, '/home/test/cookies.txt');
  12. $result=curl_exec ($ch);
  13. curl_close($ch);
  14. return $result;
  15. }
  16.  
  17. $response = send_command($command);
  18. $data = simplexml_load_string($response);
  19. $kod = $data->result_code;
  20.  
  21. $_SESSION['code'] = $kod;
  22. ?>



drugi plik check.php
  1. <?php session_start();
  2. echo "kod: ".$_SESSION['code'];
  3. ?>


Pierwszy plik wykonuje się poprawnie, na serwerze gdzie znajdują się pliki php - tworzy się plik cookies.txt z numerem sesji.
Na lokalnym komputerze też tworzony jest plik cookies z odrębnym numerem sesji.

Następnie uruchamiany jest plik check.php, który powoduję błędy

Warning: session_start() [function.session-start]: Node no longer exists in /home/test/check.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/test/check.php:1) in /home/test/check.php on line 1
kod:
Warning: Unknown: Node no longer exists in Unknown on line 0

Problemem oprócz ostrzeżeń jest też brak danych w $_SESSION['code']

Numer sesji przy drugim pliku jest zachowany, ponieważ gdy dodam echo session_id(); zwracany jest ten sam nr sesji lokalnej w przeglądarce.

W tym przypadku mamy do czynienia z 2 sesjami:
1. obsługiwana przez curl ze zdalnego serwera (cookies na serwerze)
2. obsługiwana przez serwer gdzie są pliki php (cookies w lokalnej przeglądarce)

druga sesja ma między innymi pilnować automatycznego zamykania sesji zdalnego połączenia w przypadku bezczynności i usuwania pliki cookies z /home/test/ oraz obrabiać dane ze zdalnej sesji na lokalnym serwerze w celu przekazania ich do przeglądarki

Dziękuję z góry za wszelkie sugestie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:31