是否可以通过cURL创建cookie /会话?我通过cURL将登录数据发送到wordpress文件,如果数据正确,我想登录用户。有没有办法做到这一点?我的curl文件如下所示:
$url = 'http://www.domain.de/blog/wordpress-dosomething.php?username=[username]&password=[password]&rememberMe=[rememberMe]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$rsp = curl_exec($ch);
curl_close($ch);
我的wordpress文件看起来像这样:
$username = $_GET['username'];
$password = $_GET['password'];
//login the user
$user = wp_signon( array('user_login' => $username, 'user_password' => $password, 'remember' => $remember), false );
if ( is_wp_error($user) )
//error...
如果我通过手动调用wordpress文件进行测试,这样就行了,我已登录到wordpress。但即使没有错误,通过curl它也不起作用,那么我怎样才能使这个工作?我可以以某种方式...我不知道...抓住我的脚本设置的会话/ cookie并在我的curl脚本文件中手动设置它?
提前致谢。
答案 0 :(得分:1)
您可以通过PHP中的curl的CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE选项设置cookie。例如:
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFilePath);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFilePath);
$rsp = curl_exec($ch);
curl_close($ch);
然后cookie内容将自动保存在$ cookieFilePath中,这是一个本地文件路径。
答案 1 :(得分:1)
在申请目录中添加COOKIEFILE
和COOKIEJAR
以及名为cookie.txt的文本文件
$cookie_file=realpath('cookie.txt');
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
$rsp = curl_exec($ch);
curl_close($ch);
希望这会有所帮助