6

dev1.test.comdev2.test.comの 2 つのサイトがあります。

これらは、異なるサーバーで実行されている 2 つのサイトです。dev1.test.com は私がログインした場所であり、ユーザーがログインしているかどうかを検証するために Cookie を*.test.comに設定しています。

今度は dev2.test.com で、PHP CURL リクエストを dev1.test.com に送信して、現在のユーザーがログインしているかどうかを確認します。私の curl リクエストでは、この curl リクエストに $_COOKIE (*.test.com の Cookie 情報がある場所) のコンテンツを含めたいと考えています。

どのようにphp curlでそれを行うべきですか?

4

4 に答える 4

9

ワイルドカード Cookie ドメインがあるため、dev2 にも dev1 と同じ Cookie があります。したがって、基本的には、「curl を介して私の Cookie を他のサーバーに渡す」と言う必要があります。

必要なcurlオプションは「CURLOPT_COOKIE」で、Cookieの文字列「name1 = value1; name2 = value2」を渡します

これをまとめる (テストされていない - もちろん、これを他の curl 関数にラップする必要があります)

$cookiesStringToPass = '';
foreach ($_COOKIE as $name=>$value) {
    if ($cookiesStringToPass) {
        $cookiesStringToPass  .= ';';
    }
    $cookiesStringToPass .= $name . '=' . addslashes($value);
}
curl_setopt ($ch, CURLOPT_COOKIE, $cookiesStringToPass );
于 2012-10-23T10:27:27.730 に答える
3

これは、curl 経由で $_COOKIE を転送するために使用しているものです。

$cookie_data =
  implode(
    "; ",
    array_map(
      function($k, $v) {
        return "$k=$v";
      },
      array_keys($_COOKIE),
      array_values($_COOKIE)
    )
  );
curl_setopt($ch, CURLOPT_COOKIE, $cookie_data);

参考: http: //php.net/manual/en/function.curl-setopt.php

于 2013-11-29T01:41:34.140 に答える
1

これを読んでください:http://be2.php.net/manual/en/function.curl-setopt.php

CURLOPT_COOKIEFILECURLOPT_COOKIEJAR

したがって$_COOKIE、あるサーバーから読み取り、ファイルに保存し、別のサーバーに送信する必要があります

次のようになります。

curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
于 2012-10-23T10:20:56.010 に答える