Php 设置通过curl从外部网站向action controller发送POST数据时的会话

Php 设置通过curl从外部网站向action controller发送POST数据时的会话,php,session,laravel-5,laravel-session,Php,Session,Laravel 5,Laravel Session,我在我的家庭控制器中使用代码: public function myAction1(Request $request) { $request->session()->put('redirect', $_POST['redirect']); } public function myAction2(Request $request) { $request->session()->get('redirect'); } 这是我的路线的一部分: Route::get

我在我的家庭控制器中使用代码:

public function myAction1(Request $request)
{
   $request->session()->put('redirect', $_POST['redirect']);
}

public function myAction2(Request $request)
{
   $request->session()->get('redirect');
}
这是我的
路线的一部分

Route::get('pGetway/send', 'HomeController@myAction1')->middleware('cors');
Route::post('pGetway/send', 'HomeController@myAction1')->middleware('cors');

Route::get('pGetway/verify', 'HomeController@myAction2')->middleware('cors');
Route::post('pGetway/verify', 'HomeController@myAction2')->middleware('cors');
当我使用来自浏览器的HTTP请求时,该会话工作正常,但当通过
curl
从其他网站发送数据时,它不工作意味着会话未设置

我希望设置sesstion并使用其他操作中的sesstion,例如在
myAction2

这是我的请求帖子:

$params = ['redirect'=>'http://example.com'];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost:8000/pGetway/send");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));

$response = curl_exec($ch);
curl_close($ch);

谢谢

您应该将curl cookies文件和cookies jar设置为与会话一起使用

curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

谢谢,你能进一步解释一下吗。如何设置cookie并从action controller获取它?curl为您提供了一些在没有浏览器的情况下本地处理cookie的方法。例如curl_setopt($ch,CURLOPT_HTTPHEADER,数组(“Cookie:test=Cookie”);