Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Goose45
2 / 2 / 1
Регистрация: 30.07.2016
Сообщений: 118

PHP ReadBean проверка md5 password

05.09.2017, 20:28. Показов 1940. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно проверить правильно ли введен пароль ,в базе данных он лежит в md5

И если можно пожалуйста по подробнее ,а то я в PHP полный ноль

Получал его я вот так
Это singup.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (empty($errors) ) {
    $user = R::dispense('users');
    $user->login = $data['login'];
    $user->email = $data['email'];
    md5                         
    $user->password = md5($data['password']);                           
                                
                                
    R::store($user);
    echo '<div style="color: green; font-family: Helvetica, Arial ,sans-serif">Successfully you have registered</div><hr>';
    }
        else { //достаем ошибку из массива
        echo '<div style="color: red; font-family: Helvetica, Arial ,sans-serif">'.array_shift($errors).'</div><hr>';
    }

А вот так я его проверяю ,но если ввести пароль верно то, if ( md5($data['password']) ) выполнится ,а если ввести пароль неверный он тоже выполниться

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$data = $_POST;
    if (isset($data['do_login'])) {
        $errors = array();
        $user = R::findOne('users', 'login = ?', array($data['login']));
        //$user = R::find('users', 'login = ?', array($data['login']));
        $password = R::findOne('password', 'password = ?', array($data['password']));
            if ( $user ) {
                    if ( md5($data['password']) ) {
                        echo 'bad passs';
                    }
                    
            }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2017, 20:28
Ответы с готовыми решениями:

ReadBean php
Здравствуйте, есть такой код /Регистрация пользователя $user = R::dispense(&quot;users&quot;); $user-&gt;name = $name; ...

Проверка поля Login || Password
elseif (!preg_match(&quot;/\A(\w){6,20}\Z/&quot;, $_POST)) { echo '&lt;br&gt;&lt;font color=&quot;red&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;error.gif&quot; alt=&quot;Пароль слишком...

Warning: file(password): failed to open stream: No such file or directory in E:\OpenServer\domains\php\05\5.3.3\1.php on
&lt;?php error_reporting(E_ALL &amp; ~E_NOTICE); // Устанавливаем неограниченное время выполнения скрипта set_time_limit(0); ...

2
> /dev/null
 Аватар для Блеф
286 / 119 / 86
Регистрация: 14.05.2014
Сообщений: 767
05.09.2017, 20:48
Goose45, вам нужно получить хэш с базы данных и сравнить его с введенным.

PHP
1
2
3
if ( md5($data['password']) != $password ) {
   echo 'bad passs';
}
где $password хэш из бд
0
 Аватар для Goose45
2 / 2 / 1
Регистрация: 30.07.2016
Сообщений: 118
05.09.2017, 21:10  [ТС]
if выполняется опять в любом случае

Добавлено через 6 минут
Вот здесь я его добавляю в бд
$user->password = md5($data['password']);


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//если в массив пуст ошибок нету , то все добовляем в бд
if (empty($errors) ) {
$user = R::dispense('users');
$user->login = $data['login'];
$user->email = $data['email'];
//md5   
$user->password = md5($data['password']);   
 
 
R::store($user);
echo '<div style="color: green; font-family: Helvetica, Arial ,sans-serif">Successfully you have registered</div><hr>';
}
else { //достаем ошибку из массива
echo '<div style="color: red; font-family: Helvetica, Arial ,sans-serif">'.array_shift($errors).'</div><hr>';
}
Добавлено через 6 минут
Файл login.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!--//////////////////////////////////////////////////////-->
<!--/////////////////////////////////////////////////////-->
<!--////////////////////Логин///////////////////////////-->
<!--///////////////////////////////////////////////////-->
<!--//////////////////////////////////////////////////-->
 
 
<?php
 
    require "db.php";
 
    $data = $_POST;
    if (isset($data['do_login'])) {
        $errors = array();
        $user = R::find('users', 'login = ?', array($data['login']));
        //$user = R::find('users', 'login = ?', array($data['login']));
        //$password = R::find('password', 'password = ?', array($data['password']));
        //$password = md5($password);
              ///////ВОТ ЗДЕСЬ МНЕ НУЖНО ЭТО ПРОВЕРИТЬ НО Я НЕ ПОНИМАЮ КАК....
              //////УЖЕ ВСЕ ПЕРЕПРОБОВАЛ....
            if ( $user ) {
                    if ( md5($data['password']) != $user->password ) {
                        echo 'bad passs';
                    }
                    
            }
 
            /*
            if ( $user ) {
                //елси логин существует
 
                //если используется алгоритм bcrypt
                //if ( password_verify($data['password'], $user->password) )
                if ( $password ) {
                    //Произайдет вход пользователя
                    //нужно запомнить пользователя
                    //который вошел
                    //есть два способа
                    //1.использование сессий
                    //2.использование кукесов
                    //идем в db.php
                    //используем сессию
                    //добавим в глобальный массив
                    //$_SESSION ячейку (переменную)
                    //$_SESSION['logged_user'] = $user;
                    echo "Password good";
                }*/ /*else{
                    $errors[] = 'Password wrong';
                }
            } else{
                $errors[] = 'User not found';
            }
                if ( ! empty($errors) ) {
                    echo '<div style="color: red; font-family: Helvetica, Arial ,sans-serif">'.array_shift($errors).'</div><hr>';
                }*/
            //}
        }
 
 
?>
 
<form action="login.php" method="POST">
 
<p><!--Спросить логин-->
        <strong>Login</strong><br>
        <input type="text" name="login" value="<?php echo @$data['login']?>">
    </p>
 
<p><!--Спросить логин-->
        <strong>Password</strong><br>
        <input type="password" name="password" value="<?php echo @$data['password']?>">
    </p>
    <br>
    <p>
        <button type="submit" name="do_login">Login</button>
    </p>
 
    
</form>









Файл singup.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!--////////////////////////////////////////////-->
<!--///////////////////////////////////////////-->
<!--////////Форма регистрации/////////////////-->
<!--/////////////////////////////////////////-->
<!--////////////////////////////////////////-->
 
<?php
 
    require "db.php";
 
    /*При нажатии на Signup поле логина,
    пароля(и пароля еще раз), email.
    Нам надо это обработать...
    */
    /*
    Все переменные которые возвращаются по 
    POST'у присвоим перемменой data
    */
    $data = $_POST;//POST глобальный массив
    //В POST подают все данные из form
    //и если if будет true значит кнопка
    //нажата
    
    /*
    do_signup это кнопка
    
    <button type="submit" name="do_signup">Signup</button>
 
    */
    if(isset($data['do_signup'])){
        //Если true то регистрируем
        //Проверить нажата ли кнопка
 
        //можно затримить(что бы убрать
        //все лишние пробелы)
        /*
        //в массив $errors = array();
        //мы поместим все ошибки
            if (trim($data['login']) == '') {
                        # code...
                    }
        */
                    //Проверка на ошибки
            if (trim($data['login']) == '') {
                $errors[] = 'Please Enter Login!';
            }
 
                if (trim($data['email']) == '') {
                    $errors[] = 'Please Enter Email!';
                }
                    //Пароль лучше не тримать
                    if ($data['password'] == '') {
                        $errors[] = 'Please Enter Password!';
                    }
                        //Повторны пароль сравниваем с первым
                        if ($data['password_2'] != $data['password']) {
                            $errors[] = 'Please Enter Password!';
                        }
                        //что бы не было два одинаковых пользователя
                        if ( R::count('users', "login = ?", array($data['login'])) > 0 ) {
                            $errors[] = 'User with this name already exist';                        
                        }
                            if ( R::count('users', "email = ?", array($data['email'])) > 0 ) {
                                $errors[] = 'User with this email already exist';                       
                            }
                            //Если массив с ошибками пустой
                            if (empty($errors) ) {
                                //Good регестрируем
                                //Раздел CRUD на http://redbeanphp.com
                                //dispense ???????
                                //Еще найти text sanitization function php
                                //ReadBeanPHP делает все сам (он использует PDO (технология подготовленых запросов))
                                $user = R::dispense('users');
                                $user->login = $data['login'];
                                $user->email = $data['email'];
                                //не хранить пароль в открытом виде
                                //так как если сальют базу ,то получат
                                //доступ к паролям
 
                                //используется алгоритм bcrypt (по умолчанию с PHP 5.5.0) не использую так как в denwer стоит php 5.3 ,лень ставить php 5.5
                                //$user->password = password_hash($data['email'], PASSWORD_DEFAULT);
 
                                //md5
                                $user->password = md5($data['password']);
                                //дата регистрации
                                //$user->join_date = time();
                                R::store($user);
                                echo '<div style="color: green; font-family: Helvetica, Arial ,sans-serif">Successfully you have registered</div><hr>';
                            } else { //достаем ошибку из массива
                                echo '<div style="color: red; font-family: Helvetica, Arial ,sans-serif">'.array_shift($errors).'</div><hr>';
                            }
 
    }
 
?>
<!--прапишим value для того что бы оставлять введенные данные-->
<!--Лучше POST-->
 
<form action="/signup.php" method="POST">
    
    <p><!--Спросить логин-->
        <strong>Enter login</strong><br>
        <!--Непонял зачем нужен символ @-->
        <input type="text" name="login" value="<?php echo @$data['login']?>">
    </p>
 
    <p><!--Спросить email-->
        <strong>Enter Email</strong><br>
        <input type="email" name="email" value="<?php echo @$data['email']?>">
    </p>
 
    <p><!--Спросить пароль-->
        <strong>Enter Password</strong><br>
        <input type="password" name="password">
    </p>
 
    <p><!--Спросить повторно пароль-->
        <strong>Enter Again Password</strong><br>
        <input type="password" name="password_2">
    </p>
 
    <p>
        <button type="submit" name="do_signup">Signup</button>
    </p>
 
 
 
</form>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2017, 21:10
Помогаю со студенческими работами здесь

PHP Notice:Undefined property: PDOStatement::$password in on line 25
Здравствуйте! Пытаюсь написать авторизацию и чуть было, наверное, дошел до истины, как вдруг ошибка, как в названии. Помогите исправить:...

MD5 в PHP скрипте
&lt;? include '../../engine/config.php'; //Проверяем авторизацию,если все хорошо,пускаем if(empty($_COOKIE) || $_COOKIE==&quot;&quot;) ...

md5 и пароли (php)
Решил, что мне нужно пароли у зарегистрированных пользователей хранить зашифрованными. В файле регистрации прописал: $password =...

Перевести код с VB. NET на PHP (хеширование MD5)
Добрый день, товарищи. Возможно, кто-то подскажет. Перед мной стоит задача - перенести код с VB на PHP Код - функция...

PHP проверка md5
Имеется колонка с паролями в MySQL. Часть данных зашифрована в md5(md5($pass).$salt), а часть не зашифрована никак. Мне нужно определить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru