PHP,cURL帖子登录WordPress
我正在为一个需要通过链接单击自动登录的客户进行项目。
我正在使用握手页面通过以下代码执行此操作:
$username = "admin";
$password = "blog";
$url = "http://wordpressblogURL/";
$cookie = "cookie.txt";
$postdata = "log=" . $username . "&pwd=" . $password . "&wp-submit=Log%20In&redirect_to=" . $url . "blog/wordpress/wp-admin/&testcookie=1";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url . "blog/wordpress/wp-login.php");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "blog/wordpress/wp-login.php");
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
exit;
这工作正常。它让我登录很棒。
问题是我相信WordPress键离开了URL。
详细说明一下,我的握手页面(使我登录)位于“博客”目录中,而我的WordPress应用程序位于“博客”目录中的“wordpress”目录中。浏览器中的 URL 显示 。但是,它在浏览器窗口中具有WordPress的“管理”部分。WordPress Admin链接现在无法正常运行,因为当URL需要位于目录中时,它位于目录中。..blog/handshake.php
../blog
..blog/wordpress/wp-admin
有没有办法在cURL中使浏览器中的URL反映实际页面?
我应该使用FSockOPen吗?