【发布时间】:2012-02-22 05:31:11
【问题描述】:
我需要创建授权脚本。 Cookie 必须保存并在以后使用,才能在未经授权的情况下访问该页面。谁能给我工作示例?
【问题讨论】:
标签: php zend-framework cookies curl authorization
我需要创建授权脚本。 Cookie 必须保存并在以后使用,才能在未经授权的情况下访问该页面。谁能给我工作示例?
【问题讨论】:
标签: php zend-framework cookies curl authorization
首先,您必须执行初始请求以从服务器获取 cookie。在响应中,您会将服务器发送的 cookie 保存在响应标头 Set-Cookie 中。您将它们存储在哪里取决于您。我刚刚将它们添加到会话中。
$uri = 'http://example.com';
$client = new Zend_Http_Client();
$client->setUri($uri);
$client->setAdapter('Zend_Http_Client_Adapter_Curl');
$adapter = $client->getAdapter();
$adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
/** First Request to get required cookies **/
$response = $client->request();
/** Get response cookie strings and store them (session, db, file, etc) **/
$cookies = (array) $response->getHeader('Set-cookie');
$session = new Zend_Session_Namespace();
$session->storedCookies = $cookies;
现在您已经存储了 cookie,在您下一个请求时,您可以将它们添加到请求中。
/** Start new Zend_Http_Client instance **/
$uri = 'http://example.com';
$client = new Zend_Http_Client();
$client->setUri($uri);
$client->setAdapter('Zend_Http_Client_Adapter_Curl');
$adapter = $client->getAdapter();
/** This setCurlOption is optional **/
$adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER, false);
$session = new Zend_Session_Namespace();
$cookies = $session->storedCookies;
/** Add Stored Cookie strings to Zend_Http_Client instance **/
foreach ($cookies as $cookieStr) {
$client->setCookie(Zend_Http_Cookie::fromString($cookieStr, $uri));
}
/** Perform request using stored cookies **/
$response = $client->request();
如果您有任何问题或需要我详细说明,请告诉我。
【讨论】: