Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Пустой пароль уходит в базу

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


     27.04.2014    Общие вопросы по PHP    1233

вопрос
Здравствуйте, у меня есть поле с паролем 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
39

1479 | 390

dj-avtosh - 27 апреля 2014 15:26 - шашлычник

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

skype: elhan.isaev

Artyom91
2

157 | 21

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

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

vitnet
218

2171 | 930

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
2

157 | 21

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

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

vitnet
218

2171 | 930

vitnet - 28 апреля 2014 11:29 - Эксперт

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

Artyom91
2

157 | 21

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

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

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

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