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”);