PDO не работает при попытке входа старый код работает - PullRequest
0 голосов
/ 15 марта 2019

Я уже опубликовал это, но оно было неполным: у меня есть система входа в систему, которая работает, но мне нужно, чтобы она работала с PDO!Кто-нибудь знает, где это идет не так и что мне нужно изменить?Первая часть кода старая (работает, но не PDO). Вторая часть кода - моя попытка pdo!

<?php
ob_start();


if(isset($_REQUEST['password']))
{

    require 'connect.php';  
    $password =$_REQUEST['password'];
    $mail = $_REQUEST['email'];

    if(empty($mail) || empty($password)){
        header('location: ../login.php?error=empty');
        exit();
    }
    else{

        $sql = "SELECT * FROM account WHERE email = ?;";
        $stmt = mysqli_stmt_init($connect);
        if(!mysqli_stmt_prepare($stmt, $sql)){
            header("Location: ../login.php?error=sqlError");
            exit();
        }
        else{

            mysqli_stmt_bind_param($stmt, "s", $mail);
            mysqli_stmt_execute($stmt);
            $result = mysqli_stmt_get_result($stmt);
            if($row = mysqli_fetch_assoc($result)){
                $passwordCheck = password_verify($password, $row['wachtwoord']);
                if($passwordCheck == false ){

                    header("Location: ../login.php?error=passwordWrong");
                    exit();
                }
                else if($passwordCheck == true){
                    session_start();
                    $_SESSION['userId'] = $row['account_id'];
                    $_SESSION['username'] = $row['gebruikersnaam'];
                    header("Location: ../index.php?login=succes");
                    exit();
                }
            }
            else{

                header("Location: login.php?error=noUser");
                exit();
            }
        }
    }

}
else{
    header("Location: ../login.php?error=fail");
    exit();
}

Вторая часть:

<?php
ni_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); 
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
ob_start();


if(isset($_REQUEST['password']))
{

    require 'connect.php';  
    $password =$_REQUEST['password'];
    $mail = $_REQUEST['email'];

    if(empty($mail) || empty($password)){
        header('location: ../login.php?error=empty');
        exit();
    }
    else{

        $sql = "SELECT * FROM account WHERE email = ?;";
        $stmt = $connect->prepare($sql);
        $stmt->bindParam('?', $mail);
        $stmt->execute();
        $row_length-> $stmt->fetchColumn();
        $row = $stmt->fetchColumn();
            if($row_length == 1 ){
                $passwordCheck = password_verify($password, $row['wachtwoord']);
                if($passwordCheck == false ){

                    header("Location: ../login.php?error=passwordWrong");
                    exit();
                }
                else if($passwordCheck == true){
                    session_start();
                    $_SESSION['userId'] = $row['account_id'];
                    $_SESSION['username'] = $row['gebruikersnaam'];
                    header("Location: ../index.php?login=succes");
                    exit();
                }
            }
            else{

                header("Location: login.php?error=noUser");
                exit();
            }
        }
    }


else{
    header("Location: ../login.php?error=fail");
    exit();
}

Я не получаюсообщение об ошибке, просто ошибка HTTP 500

1 Ответ

0 голосов
/ 15 марта 2019

Если вы получаете ошибку 500, мое первое подозрение будет следующим:

ni_set('display_errors', 1);

Я ожидаю, что это вызывает проблему, как и должно быть ini_set

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...