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