Instead of redirecting just disable the max_execute_time at the beginning of the action:
set_time_limit(0); On Tue, Nov 6, 2012 at 6:21 AM, Serkan Sipahi <[email protected]> wrote: > > Hi bakers, > > first of all, my english is not good.... > > i have a strange behavior with redirecting inside the Controller. Well, i > must redirect(see below/end of public function index()) to the self > controller(ModsitemapController) to bypassing the php _max_execute_time. If > cake begin to redirect i get a redirection error. But if i redirect to other > controller the redirect work. Whats i do wrong? is that a bug? > > <?php > > //Configure::write('debug', 2); > class ModsitemapController extends AppController { > > public $theme = 'Frontend'; > public $layout = 'modsitemap'; > > public $lastSpidertCatId = 0; > public $catDetailSiteReached = 0; > public $catDetailSiteTotal = 0; > public $cachedCatId = 0; > > public function __construct($request = null, $response = null) { > > parent::__construct($request, $response); > > if(isset($request->params['pass'][0])){ > $this->lastSpidertCatId = (int)$request->params['pass'][0]; > } > if(isset($request->params['pass'][1])){ > $this->catDetailSiteReached = (int)$request->params['pass'][1]; > } > if(isset($request->params['pass'][2])){ > $this->catDetailSiteTotal = (int)$request->params['pass'][2]; > } > } > > public function index(){ > > $this->loadModel('Category'); > > $res = $this->Category->find('all', array( > 'conditions' => array( > 'Category.blacklist' => 0, > 'Category.is_searched_by_user' => 1, > 'Category.id >=' => $this->lastSpidertCatId > ), > 'fields' => array('Category.id', 'Category.name'), > 'recursive' => -1 > )); $x = 1; > > foreach($res as $key => $cat){ > > $this->cachedCatId = $cat['Category']['id']; > > $urls = $this->Category->Url->find('all', array( > 'conditions' => array( > 'Url.category_id' => $cat['Category']['id'] > ), > 'fields' => array('Url.name, Url.id'), > 'recursive' => -1 > )); > > if(isset($urls[0]['Url']['id'])){ > > foreach($urls as $url){ > > $content = $this->Category->Content->find('first', > array( > 'conditions' => array( > 'Content.category_id' => > $cat['Category']['id'], > 'Content.url_id' => $url['Url']['id'], > ), > 'recursive' => -1, > 'fields' => array('Content.id') > )); > > if(isset($content['Content']['id'])){ > > $hostForUrl = str_replace('www.', '', > parse_url($url['Url']['name'], PHP_URL_HOST)); > $explodedHostUrl = explode('.', $hostForUrl); > $popElement = array_pop($explodedHostUrl); > $implodtedHostUrl = implode('.', > $explodedHostUrl); > $aHref = "/$implodtedHostUrl/$popElement/"; > > $keyword = str_replace(' ', '-', > $cat['Category']['name']); $x++; > > > $this->xmlString .= > "<url> > > <loc>http://domain.net/{$keyword}{$aHref}</loc> > <lastmod>".$this->getDate()."</lastmod> > <priority>0.60</priority> > </url>"; > > if($x === 50000){ > > $this->buildXmlString(); > $this->saveXmlFile(); > $this->resetXmlString(); > break; > > } > } > } > } > > if($x === 50000){ break; } > > } > > $this->redirect(array('controller' => 'modsitemap', 'action' => > 'index', (int)$this->cachedCatId)); > > } > > protected function getDate(){ /***********/ } > } > > ?> > > -- > Like Us on FaceBook https://www.facebook.com/CakePHP > Find us on Twitter http://twitter.com/CakePHP > > --- > You received this message because you are subscribed to the Google Groups > "CakePHP" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > Visit this group at http://groups.google.com/group/cake-php?hl=en. > > -- Like Us on FaceBook https://www.facebook.com/CakePHP Find us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. Visit this group at http://groups.google.com/group/cake-php?hl=en.
