开发者

Using curl_init in Zend Application is causing Session Error

开发者 https://www.devze.com 2022-12-29 05:33 出处:网络
I\'m getting this weird error in my Zend application with this piece of code: $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, \'www.xyz.com/ab.php\');

I'm getting this weird error in my Zend application with this piece of code:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'www.xyz.com/ab.php');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);      

if (!isset($location->country)) {
$location = new Zend_Session_Namespace('location');
$xml = new SimpleXMLElement($data);
$location->city=$xml->City;
}

This is the error, I get:

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'session has already been started by session.auto-start or session_start()

When I remove that code everything works fine. Any idea ??

Edit: On further debugging开发者_StackOverflow社区 I found that the error was not because of the curl code - it was ocuring later when I was assigning $location->city=$xml->City; But when I change that line to $location->city=''.$xml->City.''; It starts working..........this is driving me crazy !!!!


Not quite sure what your issue is, but I can tell you that Zend_Http_Client is very nice and robust and it has support for multiple adapters including CURL.

Example:

$http = new Zend_Http_Client(
  'url',
   $this->options
);
$response = $http->request();

http://framework.zend.com/manual/en/zend.http.html


Your new Zend_Session_Namespace('location'); call will try to start a new session but apparently one has already been started without using Zend_Session calls, and thus it throws an exception. So check the rest of your code (and php.ini) to find out where you start that session (it could be because session.auto_start=1 in php.ini, or a session_start() call somewhere) and fix it as you see fit...

0

精彩评论

暂无评论...
验证码 换一张
取 消