Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Пустой пароль уходит в базу

Пустой пароль уходит в базу


     27.04.2014    Все вопросы » Общие вопросы по PHP    2264

вопрос
Здравствуйте, у меня есть поле с паролем user_ppwd в таблице пользователей, я вывел его для заполнения через шаблон и в profile.php сделал изменения:

было
    $password1 = $_POST['password1'];
    $password2 = $_POST['password2'];

стало
    $password1 = $_POST['password1'];
    $password2 = $_POST['password2'];
    $user_ppwd = $_POST['user_ppwd'];

было
    if( strlen( $password1 ) > 0 ) {
        $password1 = md5( md5( $password1 ) );
        $sql_user = "UPDATE " . USERPREFIX . "_users set ".$where_lb.", fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
    } else {
        $sql_user = "UPDATE " . USERPREFIX . "_users set ".$where_lb.", fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
    }

Стало
if( strlen( $password1 ) > 0 ) {
$password1 = md5( md5( $password1 ) );
$sql_user = "UPDATE " . USERPREFIX . "_users set ".$where_lb.", fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
} else {
$sql_user = "UPDATE " . USERPREFIX . "_users set ".$where_lb.", fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', allow_mail='$allow_mail', user_ppwd='$user_ppwd', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
}

Вот, всё хорошо, люди заполняют, пароль уходит в базу, но когда поле не заполнять, оставлять пустым, уходит пустой запрос для этого поля, и пароль обнуляеться, как исправить?

Ответа пока нет


6 комментариев

dj-avtosh
PHP-developer

dj-avtosh - 27 апреля 2014 15:26 -

if ( ! empty ( $_POST['password1'] ) )

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Artyom91
Юзер

Artyom91 - 27 апреля 2014 18:48 -

Можно подробнее?

vitnet
PHP-developer

vitnet - 27 апреля 2014 19:38 -

    $user_ppwd = ( !empty ( $_POST['user_ppwd'] ) ) ? "user_ppwd='" . $_POST['user_ppwd'] . "'," : "";

    if( strlen( $password1 ) > 0 ) {
        $password1 = md5( md5( $password1 ) );
        $sql_user = "UPDATE " . USERPREFIX . "_users set " . $where_lb . ", fullname='$fullname', land='$land', icq='$icq', {$mailchange} info='$info', signature='$signature', password='$password1', {$user_ppwd} allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
    } else {
        $sql_user = "UPDATE " . USERPREFIX . "_users set " . $where_lb . ", fullname='$fullname', land='$land', icq='$icq', {$mailchange} info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";
    }

Artyom91
Юзер

Artyom91 - 28 апреля 2014 03:43 -

Не уходит в базу пароль

vitnet
PHP-developer

vitnet - 28 апреля 2014 11:29 -

В моем примере он будет уходить в том случае если меняется основной, если вам нужно наоборот пропишите {$user_ppwd} во втором запросе

Artyom91
Юзер

Artyom91 - 28 апреля 2014 11:54 -

Вроде работает, спасибо.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх