@lemuur4ik

Почему не работает авторизация php +pdo?

регистрация на сайте работает нормально , пароли шифруются и записываются в бд. А авторизация не работает вообще ни как. Либо не перекидывает на сртраницу на которую нужно , либо выдает ошибки (php 7.3)
if(isset($_POST['btn-login'])) {
    $ulogin = strip_tags($_POST['ulogin']);
    $upass = strip_tags($_POST['upass']);   
    if(!empty($ulogin) && !empty($upass)){
    $sql = 'SELECT login, pass FROM users WHERE login = :login';
    $paramas = [':login' => $ulogin];
    $stmt = $this->conn->prepare($sql);
    $stmt->execute($params);
    $user = $stmt->fetch(PDO::FETCH_OBJ);
    if($user){
        if(password_verify($upass, $user->pass)){
            header('Location: index.php');
        }
    }
    else{
            echo 'введите все поля';
        }
    }
}

Ошибка "Fatal error: Uncaught Error: Using $this when not in object context in /home/site/auth.php:14 Stack trace: #0 {main} thrown in /home/site on line 14"
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
Exomode
@Exomode
Архитектор ПО
Потому что нельзя просто так взять и выдернуть кусок кода из того места где оно УЖЕ работает и вставить его туда, где НУЖНО чтобы оно работало, нарушая при этом весь контекст выполнения. Либо подключайте класс работы с PDO в ваш скрипт и работайте через него, либо вытаскивайте тогда из класса и остальное чего не хватает по контексту (коннект, например), а больше не нужные $this замените ссылкой на объект PDO
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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