我使用以下代码访问受用户名/密码登录保护的页面。
//Fetch homepage
$client = new Zend_Http_Client();
$client->setCookieJar();
$client->setUri('https://www.yourloungelearning.co.uk/crew_trainer/login.php');
//$client->setParameterPost( 'username', $_SESSION['username'] );
//$client->setParameterPost( 'password', $_SESSION['password'] );
$client->setParameterPost( 'username', '#####' );
$client->setParameterPost( 'password', '#####' );
$response = $client->request('POST');
// Now we're logged in, get private area!
$client->setUri('https://www.yourloungelearning.co.uk/crew_trainer/index.php');
$response = $client->request('GET');
echo $response->getBody();
最后的回显总是再次返回登录屏幕(表示登录失败)。这几乎完全是从Zend文档中复制的。谁能看到我做错了什么?
答案 0 :(得分:2)
在该页面上进行的一系列快速测试表明,您确实需要包含提交按钮值(实际值无关紧要,只需要存在)作为要处理的登录的POST数据的一部分。
$client->setParameterPost('submit', 'Login');
如果您检查了登录尝试的响应,您会注意到这一点。
答案 1 :(得分:1)
答案 2 :(得分:0)
不是解决方案,但是:您应该手动实例化->setCookieJar()
并传递它,而不是仅使用Zend_Http_CookieJar
。这样,如果您实际收到登录cookie,则可以更轻松地进行调试。