1

我正在使用以下代码访问受用户名/密码登录保护的页面。

  //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 文档中复制而来的。谁能看到我做错了什么?

4

3 回答 3

2

该页面上的一些快速测试表明,您确实需要将提交按钮值(实际值无关紧要,它必须存在)作为 POST 数据的一部分来处理登录。

$client->setParameterPost('submit', 'Login');

如果您检查登录尝试的响应,您会注意到这一点。

于 2011-01-18T01:36:26.320 回答
1

我昨天遇到了这个问题,请查看API 站点

->setCookieJar(true)

参数 true 构造了一个新的 CookieJar,没有这个参数它对我不起作用。

于 2011-01-23T17:00:51.160 回答
0

不是解决方案,但是:->setCookieJar()您应该手动实例化 aZend_Http_CookieJar并传递它,而不是使用 just 。这样,如果您确实收到了登录 cookie,就可以更轻松地进行调试。

于 2011-01-18T01:39:03.683 回答