0

http リクエストを送信しようとしていますPHPSESSIDが、COOKIE として送信しようとすると警告が表示されることに気付きました。

file_get_contents (' http://mysite.localhost '): ストリームを開くことができませんでした: HTTP 要求が失敗しました

コード:

$options = array(
    'http' => array(
        'header'  => 
            "Content-type: application/x-www-form-urlencoded\r\n".
            "Cookie: {$this->COOKIE}\r\n",
                'method'  => $this->method,
                'content' => $this->POST,
            ),
        );
$c = file_get_contents($this->uri, false, stream_context_create($options));
if(!$c)
    throw new \Exception("Unable to fetch the request...");
echo $c;

編集済みのvar_dump
出力:

var_dump($this->COOKIE, $this->method, $this->POST);

string(53) "HI=COOKIE; L=S; PHPSESSID=o1eqt811isceh4f0nhfnnlnm70"
string(4) "POST"
string(6) "POST=VALUE"

私は何を間違っていますか?

4

2 に答える 2

3

関数「file_get_contents」を呼び出す直前に、この関数「session_write_close」を呼び出す直前に、まず現在のセッションを閉じる必要があります。

その呼び出しの後にセッションを使用したい場合は、「file_get_contents」を呼び出した後に session_start を再度開くことを忘れないでください。

したがって、コードは次のようになります。

$options = array(
    'http' => array(
        'header'  => 
            "Content-type: application/x-www-form-urlencoded\r\n".
            "Cookie: {$this->COOKIE}\r\n",
                'method'  => $this->method,
                'content' => $this->POST,
            ),
        );
session_write_close();
$c = file_get_contents($this->uri, false, stream_context_create($options));
于 2014-04-20T13:06:45.897 に答える