отправить сеанс var с помощью php cUrl - PullRequest
1 голос
/ 22 сентября 2011

Я пытаюсь отправить данные между скриптами в моем приложении.

Проблема в том, что идентификатор сессии не отвечает.

Сценарий 1 - это ...

 <?php 
      session_start();

      $_SESSION['id'] = 1;

      $data = "data to be sent to script";

      $ch = curl_init("http:.../myscript.php");

      $nvp = "&data=$data";

      curl_setopt($ch, CURLOPT_POSTFIELDS, $nvp);

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

      echo curl_exec($ch);

      ?>

myScript.php is ...

      <?php

      session_start();          

      $id = $_SESSION['id'];

      $data = $_POST['data'];

      $result = function idData($id, $data); // returns matching results.


      echo "Session Id = $id <br />";


      echo "Id result = $result <br />";

      ?>

Однако myScript.php не может получить доступ к данным сеанса в обычном режиме.

Есть ли способ обойти это?Какой может быть возможная причина?

Спасибо

Ответы [ 4 ]

5 голосов
/ 22 сентября 2011

В сценарии 1 вы можете использовать CURLOPT_COOKIE, если вы сами отслеживаете идентификатор сеанса из ответа.

Я не думаю, что вам нужен или нужен session_start в сценарии 1, если он будетсделав несколько запросов к myscript.php, который создает сеанс.

Используйте это в сценарии 1:

curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt'); // set cookie file to given file
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt'); // set same file as cookie jar

И затем сделайте ваш запрос как обычно.Все куки-файлы, установленные myscript.php, будут сохранены в файле jar-файлов cookie после завершения запроса. Cookiefile будет проверен на наличие куки-файлов перед отправкой запроса.

Вы можете вручную отслеживать сеанс phpcookie из запроса curl и также используйте CURLOPT_COOKIE.

3 голосов
/ 22 сентября 2011

Я думаю, вы ищете CURLOPT_COOKIE

curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
2 голосов
/ 18 февраля 2013

Вы можете найти полезную статью здесь: http://board.phpbuilder.com/showthread.php?10346748-RESOLVED-Curl-with-sessions

0 голосов
/ 03 декабря 2012

Вам не хватает одного параметра для использования сообщения.Пожалуйста, добавьте это, оно должно работать: curl_setopt($ch, CURLOPT_POST, true);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...