Thursday, September 5, 2013

Re: The request has been black-holed

Do not disable security component, ajax request works fine with in AppController:

public function beforeFilter() {
    if ($this->request->is('ajax')) $this->Security->unlockedActions = array($this->request->action);
}

Ajax works fine is you send data in json format and not html code.

best regards --cesar


El jueves, 14 de junio de 2012 10:20:49 UTC-3, jmail escribió:
Hi all!
 
I've got a stupid problem :/
 
I am building small chat. I need that for my customer - it's not importand
 
I've got:
 
AppController:
 
<?php
App::uses('Controller', 'Controller');
class AppController extends Controller {
 var $uses = array('Config', 'Chat', 'User');
 var $helpers = array('Form', 'Html', 'Session');
 var $components = array('Session', 'RequestHandler');
 var $nonLoginActions = array(
  'chat' => array('login')
 );
 public function beforeFilter() {
        parent::beforeFilter();
  $this->getConfig();
  $this->checkSession();
 }
 
 function getConfig(){
  $config = $this->Config->find('all');
  foreach($config as $element){
   Configure::write('config.'.$element['Config']['name'], $element['Config']['value']);
  }
 }
 
 function checkSession(){
  if(isset($this->nonLoginActions[$this->request->params["controller"]])){
   if(!in_array($this->request->params["action"], $this->nonLoginActions[$this->request->params["controller"]])){
    if(CakeSession::read("user") === null || CakeSession::read("user") === false){
     $this->redirect(array('controller' => 'chat', 'action' => 'login'));
    }
   }
  }
 }
 
}
 
 
Controller - ChatController
 
<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 * Description of ChatController
 *
 * @author jmail
 */
class ChatController extends AppController{
 var $components = array('Session', 'RequestHandler', 'Security');
 
 function login(){
  
 }
 
}
 
View - login.ctp
 
Logowanie
<?php echo $this->Form->create('User', array('inputDefaults' => array('label' => false,'div' => false)));?>
<?php echo $this->Form->input('login', array('type' => 'text', 'label' => 'Login'));?>
<?php echo $this->Form->input('pass', array('type' => 'password', 'label' => 'Hasło'));?>
<?php echo $this->Form->end(array('value' => 'Zaloguj się', 'label' => 'Zaloguj się',  'div' => false));?>
 
Layout - default.ctp
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <?php
  echo $this->Html->css('cake.generic');
 ?>
</head>
<body>
 <div id="container">
  <div id="header">
   <h1>MiniChat</h1>
  </div>
  <div id="content">
   <?php echo $this->fetch('content'); ?>
  </div>
 </div>
</body>
</html>
 
And my problem is:
 
When i go to the http://site/chat/login and press submit button I get
 

The request has been black-holed

Error: The requested address '/chat/login' was not found on this server.

 

Everything is empty. What the hell I am doing wrong?

cakephp-cakephp-2.1.3-28-g645e981

--
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 unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: