В режиме редактирования пароль не должен обновляться

#php

#php

Вопрос:

Когда пользователь нажимает на кнопку редактирования, все поля формы автоматически заполняются, кроме поля пароля, и запись обновляется нажатием кнопки обновления. Но я хочу, чтобы, если пользователь не вводит свой пароль в режиме обновления, пароль не должен обновляться. Я понятия не имею, как это можно сделать? Пожалуйста, поделитесь идеей для этого. Спасибо в расширенном

Код

 // Process action
if($action == 'Process')
{
    // checking errors
    $error_msgs         = array();

    // getting record if id
    $data = ($id) ? $db->getRow("SELECT * FROM `{$db_table}` WHERE `{$pcolumn_name}`='$id'") : FALSE;

    // if username already exist
    $is_exist_username = is_exists_record($db_table, $pcolumn_name, 'username', $username, $id);


    if(empty($firstname))
        $error_msgs['firstname']            = "First Name must have some value!";
    if(empty($lastname))
        $error_msgs['lastname']             = "Last Name must have some value!";
    if(empty($email))
        $error_msgs['email']                = "Email must have some value!";
    if(empty($username))
        $error_msgs['username']             = "Username must have some value!";
    if(empty($password))
        $error_msgs['password']             = "Password must have some value!";
    if(empty($repeatpassword))
        $error_msgs['repeatpassword']       = "Repeat Password must have some value!";
    if($password!=$repeatpassword)
        $error_msgs['repeatpassword']       = "The Passwords do not match!";
    if($is_exist_username)
        $error_msgs['is_exist_username']    = "Username already exists!";
    if(!empty($email) amp;amp; !isValidEmail($email))
        $error_msgs['email']                = "Please enter valid Email!";
    //----------------------------------------------------------------------------- successful process
    if(count($error_msgs) == 0)
    {

        // db data bucket
        $data_for_db = array(
            'username'              => $username,
            'password'              => $password,
            'transaction_pwd'       => $transaction_pwd,
            'email'                 => $email,


        );
        // setting more data into db array amp; memcache array
        //$data_for_db['date_added'] = (!$id) ? $curr_date : $data['date_added'];

        // db data set bucket
        $data_setRecord['ID']           = (int)$id;
        $data_setRecord['db_table']     = $db_table;
        $data_setRecord['pcolumn_name'] = $pcolumn_name;
        $data_setRecord['where']        = "`{$pcolumn_name}`='$id'";
        //$data_setRecord['print_sql']  = 1; 
        $data_setRecord['data_for_db']  = $data_for_db;

        $affected = setRecord($data_setRecord);

        ($affected) 
            ? msgOk('Record saved Successfully!') 
            : msgAlert('Record could not be saved, Try Again!');
    } print msgsErrors($error_msgs);
} // if ends for form submit
  

Комментарии:

1. Я уже добавил код с помощью post

2. Какая часть кода это? непонятно .. это код для обновления пользователя или для его добавления?

Ответ №1:

После

 $data_for_db = array(
            'username'              => $username,
            'password'              => $password,
            'transaction_pwd'       => $transaction_pwd,
            'email'                 => $email,


        );
  

вы должны добавить:

 if ($data !== false) {
  unset($data_for_db['password']);
}