пароль изменения в codeigniter

Привет я пишу код для пароля изменения, но это не изменяет пароль в столе но сделайте 0 текущих паролей. Таким образом, что я делаю. Спасибо

Это - моя Модель

function changepassword() {
$this->db->select('id');
$this->db->where('username', $this->session->userdata('username'));
$this->db->where('password', $this->input->post('OldPassword'));
$query = $this->db->get('mau_user');
if ($query->num_rows() > 0) {
    $row = $query->row();
    if ($row->id === $this->session->userdata('id')) {
        $data = array(
            'password' => $this->input->post('password')
        );
        $this->db->where('username', $this->session->userdata('username'));
        $this->db->where('password', $this->input->post('OldPassword'));
        if ($this->db->update('mau_user', $data)) {
            return "Password Changed Successfully";
0
nl ja de
Как @Jurgo предположил, удостоверьтесь, что ваши почтовые ценности правильны сначала.
добавлено автор Gavin, источник
не связанный с вашим вопросом, но попыткой зашифровать пароль (md5) прежде экономят в db.
добавлено автор iLaYa ツ, источник
просто информация: лучше, чтобы отфильтровать вводы данных пользователем в вашем диспетчере и перейти к вашей модели вместо того, чтобы передать его непосредственно..
добавлено автор Sudhir Bastakoti, источник
сделал вы проверяете ценность $this-> вход-> почта (' password') ?
добавлено автор Jurgo, источник

2 ответы

в диспетчере

function edit_password()
{
    $uderid = $this->session->userdata('user_id');
   //update data

    if($_POST)
    {
        if($this->input->post('old_password')!=''){
            $this->form_validation->set_rules('old_password','Old password',  'trim|required|xss_clean|addslashes|encode_php_tags |callback_oldpass_check');            
            $this->form_validation->set_rules('new_password','New password', 'trim|required|xss_clean|addslashes|encode_php_tags|min_length['.PASS_MIN_LEN.']|md5');
            $this->form_validation->set_rules('conf_password', 'Confirm password', 'trim|required|xss_clean|addslashes|encode_php_tags|min_length['.PASS_MIN_LEN.']|matches[new_password]|md5');

            if($this->form_validation->run() == TRUE) 
            {       
                $data =array( 'password' => $this->input->post('conf_password'));                   
                $this->main->update('users','user_id',$uderid,$data);

                $this->change_password('Password updated successfully');                      
            }
            else{
                $this->change_password();
                }       
            }

        else{
            redirect(base_url().'user' , '301');
        }
    }       

}

 function oldpass_check($oldpass)
 {  
    $user_id = $this->session->userdata('user_id');
    $result = $this->main->check_oldpassword($oldpass,$user_id);       
        if($result ==0)
            {
                $this->form_validation->set_message('oldpass_check', "%s doesn't match.");
                return FALSE ;  

            }
         else
            {
                return TRUE ;

            }             
}

Модель

function check_oldpassword($oldpass,$user_id)
{
    $this->db->where('user_id', $user_id);
    $this->db->where('password', md5($oldpass));        
    $query = $this->db->get('users'); //data table
    return $query->num_rows(); 
}
0
добавлено

Если в db полевой пароль установлен как целое число, значение по умолчанию 0, так вероятно, стоимость вы - tryn', чтобы обновить это недействительно, необходимо напечатать SQL и начать отлаживать оттуда....

0
добавлено
It' s возможный, что стоимость на самом деле ложная (потому что это doesn' t существуют), и база данных преобразовывает это в 0.
добавлено автор Gavin, источник
Значение по умолчанию могло бы быть не 0 для целого числа, это могло бы быть любое целое число на самом деле, если дефолт определяется в mysql.
добавлено автор ZurabWeb, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp