2016-10-12 16 views
1

これは私が、このコードは、上に展開されなければならないシステムは、単に動作しないクッキーとコードを保存することはできませんクッキーを保存せずにcURL HTTPセッションを維持する方法は?

 if(!function_exists("\curl_init")){ 
     \load_curl(); 
     echo "curl loaded"; 
    } else { 
     echo "curl already exists "; 
    } 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, ''); //could be empty, but cause problems on some hosts 
    curl_setopt($ch, CURLOPT_COOKIEFILE, ''); //could be empty, but cause problems 

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_URL, $url1); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $startInterview); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $startInterviewHeaders); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    //curl_setopt($ch, CURLOPT_HEADER, 1); 

    $startInterviewresponse = curl_exec($ch); 
    //echo $response; 

    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    $curl_errno= curl_errno($ch); 
    echo "</br> HTTP status: " . $http_status . "</br> cURL error: " .$curl_errno . "</br>"; 
    //curl_close($ch); // close cURL 
    echo $startInterviewresponse; 

    $investigateHeaders = array("SOAPAction: xxx"); 

    curl_setopt($ch, CURLOPT_POSTFIELDS, $investigateXML); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $investigateHeaders); 
    $investigateResponse = curl_exec($ch); 
    echo "</br>"; 
    echo $investigateResponse; 

    curl_close($ch); 

問題があるクッキーとHTTPセッションを維持するために使用しているPHPのcURLコードです。 HTTPセッションを維持するために一時ファイルの代わりにPHP変数を使用するようにこのコードを修正するにはどうすればよいですか?

あなたは

+0

'CURLOPT_COOKIE'を使って生のクッキー値(おそらく変数にあるもの)を設定し、サーバーが送信したクッキーの応答ヘッダーを確認することができます。 – apokryfos

答えて

0

あなたはファイルシステムを使用できない場合は、代わりにファイルシステムのメモリにセッション情報を保存するためにphp://memoryストリームを使用することができますありがとうございました。

また、あなたは、最初の要求に応答Set-CookieヘッダからセッションIDを解析し、それを変数に保存して、Cookieヘッダ内または後続のすべてのリクエストに応じてCURLOPT_COOKIEによってそれを送ることができます。

関連する問題