на хостинге не работает авторизация, а на локальном сервере без проблемю

109
17 марта 2021, 19:50

подскажите, почему проверка пароля на локальном сервере (ноутбук (Тип сервера: MariaDB; Версия сервера 10.3.13-MariaDB; Версия PHP 7.1.22), использую RedBeanPHP 5 mysql ) работает, а когда переношу на хостинг (5.7.26 - MySQL Community Server (GPL), Версия PHP: 7.2.7) не работает, в базу записывает как положено, но когда пытаюсь авторизоваться, выдаёт “неправильный пароль”, причём если вручную записать пароль в базу (без шифрования), то же самое. Когда проверяю что приходит с сервера, там одинаковые значения. вот кусок кода

$data = $_POST;
    if ( isset($data['do_login'])) {
        $errors = array();
        $user = R::findOne('users', 'login = ?', array($data['login']));
        if ( $user ) {                                                                      // логин существует
            if (password_verify($data['password'], $user->password)) {                      // логиним пользователя
                $_SESSION['logged_user'] = $user;
                echo '<div style="color: green;">Вы успешно авторизованны!<br/>
                Переход к <a href="/">главной странице</a></div><hr>'; 
            } else {
                $errors[] = '<div style="color: red;">Не верно введён пароль!!!</div>';
                var_dump($user->password);   // вот так проверяю, что мне приходит.
                var_dump($data);                            
        } 
        else {
            $errors[] = '<div style="color: red;">Пользователь с таким логином не найден!!!</div>';
        }
        if ( ! empty($errors)) {
            echo '<div style="color: red;">' .array_shift($errors).' </div><hr>';}
    }
 ?> 
<form action="login.php" method="POST"> 
    <p>
        <p><strong>Введите Ваш логин</strong>:</p>
        <input type="text" name="login" value="<?php echo @$data['login']; ?>">
    </p>
    <p>
        <p><strong>Введите Ваш пароль</strong>:</p>
        <input type="password" name="password" value="<?php echo @$data['password']; ?>">
    </p>
    <p><button type="submit" name="do_login">Войти!</button></p>
</form>[![введите сюда описание изображения][1]][1]

вот процесс регистрации

<?php 
$data =$_POST;
    if ( isset($data['do_singup'])) {
        $errors = array();
        if (trim($data['login']) == '') {
            $errors[] = 'Введите логин!';}
        if (trim($data['email']) == '') {
            $errors[] = 'Введите Email!';}
        if ($data['password'] == '') {
            $errors[] = 'Введите пароль!';}
        if ($data['password_2'] != $data['password']) {
            $errors[] = 'Введите правильно повторный пароль!';}
        if ( R::count('users', "login = ?", array($data['login'])) > 0) {
                            $errors[] = 'Пользователь с таким логином существует!';}
        if ( R::count('users', "email = ?", array($data['email'])) > 0) {
            $errors[] = 'Пользователь с таким Email существует!';
        }
        if ( empty($errors) ) {     
            $user = R::dispense('users');
            $user->login = $data['login'];
            $user->email = $data['email'];
            $user->password = password_hash($data['password'], PASSWORD_DEFAULT);
            R::store($user);
            echo '<div style="color: green;">Вы успешно зарегистрировались!</div><hr>';
        } else {
            echo '<div style="color: red;">' .array_shift($errors).' </div><hr>';}
    } ?>
 <form action="signup.php" method="POST">
    <p>
        <p><strong>Введите логин</strong>:</p>
        <input type="text" name="login" value="<?php echo @$data['login']; ?>">
    </p>
    <p>
        <p><strong>Ваш Email</strong>:</p>
        <input type="email" name="email" value="<?php echo @$data['email']; ?>">
    </p>
    <p>
        <p><strong>Введите пароль</strong>:</p>
        <input type="password" name="password" value="<?php echo @$data['password']; ?>">
    </p>
    <p>
        <p><strong>Повторите пароль</strong>:</p>
        <input type="password" name="password_2" value="<?php echo @$data['password_2']; ?>">
    </p>
    <p>
        <button type="submit" name="do_singup">Зарегистрироваться!</button>
    </p>
 </form>
Answer 1

Нашёл ошибку, когда делал базу данных, в строке пароля было 50 символов допустимо, а надо минимум 60, но есть рекомендации 255 символов.

READ ALSO
SSR в окружении PHP и Vue.js

SSR в окружении PHP и Vue.js

Стоит жирная задача реализовать SSR (Server-Side Rendering) в проекте, но постоянно вылазят разные трудности

116
Отправка GET POST запроса android

Отправка GET POST запроса android

Нужна помощьНе могу за коннектится сервером

121
HQL: Can&#39;t resolve symbol

HQL: Can't resolve symbol

Подскажите пожалуйста, какой синтаксис у HQL запроса, который возвращал бы объекты из базы, при определённом условии

95