Welcome Guest, Not a member yet? Register   Sign In
CSRF Protection, what the problem ?
#1

[eluser]mestresan[/eluser]
Hi guys,
I'm trying to use csrf in my system... work in almost forms, but, when I submit the form and there are errors (validation form class), the form is reloaded. In this moment is created a new csrf value, but when a re-submit, I receive error message from csrf protection.

What can be the problem?
#2

[eluser]Hire Codeigniter Developer[/eluser]
Can u show me code or snap shot or something thats can help me to understand actual problem.
#3

[eluser]mestresan[/eluser]
:: Controller sample ::
Code:
/**
    * formulario para cadastro e edicao
    */
    function cadastro() {
        $this->autenticacao_model->restrict(); // verifica login e permissoes do usuario
        
        $this->data['main_content'] = 'sar/form_cadastro'; // nome da view que deve carregar
        
        $this->data['data']['validation_errors'] = '';
        $this->data['data']['validation_sucesso'] = '';
        $this->data['data']['array_situacao_busca'] = $this->config->item('array_situacao_busca');
        $this->data['data']['array_nao_sim_busca'] = $this->config->item('array_nao_sim_busca');
        $this->data['data']['array_sistemas_painel'] = $this->config->item('array_sistemas_painel');
        $this->data['data']['combobox_secoes_principais'] = $this->secao_model->combobox();
        
        // combobox categorias
        $this->load->model('secao_categorias_model');
        $this->data['data']['combobox_categorias'] = $this->secao_categorias_model->combobox();
        
        if ( strtolower($_SERVER['REQUEST_METHOD']) != 'post') {
            $codigo = (int)$this->uri->segment(4);
            $this->secao_model->set_id($codigo);            
            $this->secao_model->recuperar();                    
            
        } else {
            // formulario post
            
            // carregando dados
            $this->secao_model->set_id($this->input->post('txtCodigo'));
            $this->secao_model->set_nome($this->input->post('txtNome'));
            $this->secao_model->set_url($this->input->post('txtUrl'));
            $this->secao_model->set_categoria($this->input->post('slCategoria'));
            $this->secao_model->set_exibe_menu($this->input->post('slMenu'));
            $this->secao_model->set_status($this->input->post('slStatus'));
            $this->secao_model->set_pai($this->input->post('slSecaoPai'));
            $this->secao_model->set_tipo_acesso($this->input->post('cbSistemaAcesso'));            
            
            if ($this->form_validation->run('secoes') == FALSE) {
                // erro
                $this->data['data']['validation_errors'] = '<ul class="message error no-margin">'.$this->form_validation->error_string('<li>', '</li>').'<li class="close-bt"></li></ul>';
                
            } else {
                
                if($this->secao_model->gravar()) {
                    $this->data['data']['validation_sucesso'] = '<ul class="message success no-margin"><li>Gravado com sucesso.</li><li class="close-bt"></li></ul>';
                }
            }            
        }            
        
        $this->data['data']['item'] = $this->secao_model->to_array();
        
        $this->parser->parse(BACKEND_LAYOUT_PATH . 'main_tpl', $this->data);
    }

:: view ::
Code:
&lt;?php
        $attributes = array('class' => 'block-content form', 'id' => 'formCadastroEdicao', 'name' => 'formCadastroEdicao');
        $hidden     = array('txtCodigo' => $item['codigo']);
        echo form_open('sar/secoes/cadastro/'.$item['codigo'], $attributes, $hidden);
?&gt;

<fieldset class="grey-bg">
                        <legend>Campos requeridos</legend>
    
                        <div class="colx3-left required">
                            <label for="txtNome">Nome</label>
                            <p class="input-height">
                                &lt;input type="text" name="txtNome" id="txtNome" value="&lt;?php echo $item['nome']; ?&gt;" class="full-width" title="requerido"&gt;
                            </p>
                        </div>
                    ....
&lt;?php form_close(); ?&gt;

The problem... on First submit is OK.
But, if return for form because form_validation, I cant re-submit. I receive error from CSRF.

Thx in advanced.




Theme © iAndrew 2016 - Forum software by © MyBB