Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa, como vão?
Acho que sou o membro que estuda cakephp que mais tá sumido aqui.. -.-
Bom, venho com uma dúvida nada comum... as funções estão corretas... eu debuguei o cookie quando o formulário é submetido e aparece o resultado na tela, mas se eu tentar dar um ENTER na url, ou acessar outra página... o cookie ou fica com valor NULL, ou ficar com valor desfigurado, com aqueles caracteres, parecendo que está criptografado...
Vamos ao código que utilizei, baseado no "remember-me" do AuthComponent:
//app_controller.php
function __get_post_action( $name ) {
$params = func_get_args();
foreach ($params as $name) {
if ( isset($_POST[$name]) ) {
return $name;
}
}
}
function __configSIte() {
switch ( $this->__get_post_action('blue', 'red') ) {
case 'blue':
// criando cookie com valor de cor azul
$this->Cookie->write( 'background', 'blue', null, '+2 weeks' );
break;
case 'red':
// criando cookie com valor de cor vermelha
$this->Cookie->write( 'background', 'red', null, '+2 weeks' );
break;
default:
//no action sent
}
$bg_cookie = $this->Cookie->read('background');
debug( $this->Cookie->read('background') );
//pr( $bg_cookie );
//var_dump( $bg_cookie );
if ( is_null($bg_cookie) ) {
//$bg_cookie = 'red';
//pr($bg_cookie);
}
$this->set( compact( 'domain_url', 'bg_cookie' ) );
}
function beforeFilter() {
$this->__configSIte();
}
Agora o código da view:
//views/users/login.ctp
<div class="backgrounds">
<?php
echo $this->Form->create( $this->params['controller'], array( 'action'=>$this->params['action'] ) );
echo $form->submit( '', array( 'name'=>'blue', 'title'=>__('Azul', true) ) );
echo $form->submit( '', array( 'name'=>'red', 'title'=>__('Vermelho', true) ) );
echo $this->Form->end();
?>
</div>
Agora o código do layout:
// views/layouts/login.ctp:
echo $this->Html->css( array( 'login', 'background_'.$bg_cookie ) );
Preciso que me digam onde eu errei no código, pois isso eu não consigo encontrar nem debugando a página =/
Agradeço essa grande equipe do CakePhp do iMasters.... ^^
Carregando comentários...