Codeigniter: проблем при проверка на входящи данни.

index

Super Moderator
Здравейте , имам лседният проблем.
Сетва паролата както трябва да си е ..
Обаче нещо проверката да съвпада с другото поле (password2) куца.
Не мога да си видя грешката.
Та ще може ли някой да хвърли едно око ?
Код:
  function _edit_profile()
    {
        $lang =  $this->lang->language;
        if($this->_is_login() == FALSE)
        {
            redirect('/user/login/');
        }
        $user = $this->session->userdata('username');
        $id = $this->session->userdata('id');
        if($this->input->post('username'))
        {
             $this->load->library('form_validation');
             if($this->input->post('password'))
             {
                $this->form_validation->set_rules('password',$lang['user_pass'],'min_length[6]|maches[password2]');
                $this->form_validation->set_rules('password2',$lang['user_pass'],'min_length[6]');
                $pass = $this->input->post('password');
                if ($this->form_validation->run() == TRUE)
                 {
                   $this->db->update('users',array('password'=>md5($pass)),"id = {$id}");
                 }
                 else
                 {
                     return false;
                 }
              
                
             }
             $this->form_validation->set_rules('mail',$lang['user_mail'],'required|valid_email');
             $this->form_validation->set_rules('signature',$lang['signature'],'xss_clean');
             if ($this->form_validation->run() != TRUE)
             {
                 return false;
             }
             $rd =$this->input->post('d')."/".$this->input->post('m')."/".$this->input->post('y');
             $mail =  $this->input->post('mail');
             $signature = $this->input->post('signature');

             $data = array(
               'mail' => $mail,
               'signature' => $signature,
               'rd' => $rd
            );
            $this->db->update('users', $data,"id = {$id}");

            $upload = $this->_upload_avatar();
            if($upload != FALSE)
            {
                $this->db->update('users',array('avatar'=>$upload['file_name']),"id = {$id}");
            }
        }

        $q = $this->db->getwhere('users',array('username' => $user),1);
    
        $row = $q->result(); $row = $row[0];
        $row->regtime =  mdate('%Y-%m-%d 00:00 AM',$row->regtime);

        $rd = explode("/", $row->rd);
        $row->rds['d'] = $rd[0];
        $row->rds['m'] = $rd[1];
        $row->rds['y'] = $rd[2];
        return $row;
    }
 
index каза:
Здравейте , имам лседният проблем.

{
$lang = $this->lang->language;
if($this->_is_login() == FALSE)
{
redirect('/user/login/');
}
$user = $this->session->userdata('username');
$id = $this->session->userdata('id');
if($this->input->post('username'))
{
$this->load->library('form_validation');
if($this->input->post('password'))
{
$this->form_validation->set_rules('password',$lang['user_pass'],'min_length[6]|matches[password2]');
$this->form_validation->set_rules('password2',$lang['user_pass'],'min_length[6]');
$pass = $this->input->post('password');
if ($this->form_validation->run() == TRUE)
{
$this->db->update('users',array('password'=>md5($pass)),"id = {$id}");
}
else
{
return false;
}


}
$this->form_validation->set_rules('mail',$lang['user_mail'],'required|valid_email');
$this->form_validation->set_rules('signature',$lang['signature'],'xss_clean');
if ($this->form_validation->run() != TRUE)
{
return false;
}
$rd =$this->input->post('d')."/".$this->input->post('m')."/".$this->input->post('y');
$mail = $this->input->post('mail');
$signature = $this->input->post('signature');

$data = array(
'mail' => $mail,
'signature' => $signature,
'rd' => $rd
);
$this->db->update('users', $data,"id = {$id}");

$upload = $this->_upload_avatar();
if($upload != FALSE)
{
$this->db->update('users',array('avatar'=>$upload['file_name']),"id = {$id}");
}
}

$q = $this->db->getwhere('users',array('username' => $user),1);

$row = $q->result(); $row = $row[0];
$row->regtime = mdate('%Y-%m-%d 00:00 AM',$row->regtime);

$rd = explode("/", $row->rd);
$row->rds['d'] = $rd[0];
$row->rds['m'] = $rd[1];
$row->rds['y'] = $rd[2];
return $row;
}
Изпусна си "t"
:) :?:
 
index, за места, които искаш да са защитени по някакъв начин използвай PHP сесиите или на тези на codeigniter им дай да се записват в базата данни или им дай encription_key, защото сесиите на CI всъщност са една бисквитка, която може да се редактира без никакъв проблем и по default, не са защитени по никакъв начин.

Погледни application/congif/congif.php

$config['encryption_key'] = "texttexttext";

/*
|--------------------------------------------------------------------------
| Session Variables
|--------------------------------------------------------------------------
|
| 'session_cookie_name' = the name you want for the cookie
| 'encrypt_sess_cookie' = TRUE/FALSE (boolean). Whether to encrypt the cookie
| 'session_expiration' = the number of SECONDS you want the session to last.
| by default sessions last 7200 seconds (two hours). Set to zero for no expiration.
| 'time_to_update' = how many seconds between CI refreshing Session Information
|
*/
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;

Не съм много запознат с методите за променяне на бисквита, затова не знам, но мисля, че ако зададеш $config['sess_encrypt_cookie'] = TRUE; и дадеш някакъв низ на $config['encryption_key'] ще се защитени до голяма степен :) Но най-добре използвай PHP сесиите, въпреки удобството на CI класа :)
 
В wiki-то на CI има 1 библиотека, която представлява нещо накто session класа, но със php сесиите :) Дърпа се и се слага в libraries :?:
 

Back
Горе