Проблемы с перенаправлением со страницы входа - PullRequest
0 голосов
/ 30 ноября 2018

Я прохожу курс по веб-разработке.В настоящее время я создаю веб-страницу, где люди могут делать заметки.Моя форма регистрации работает нормально, активация работает, значения БД создаются с именем пользователя и паролем.Проблема в том, что при попытке войти с активированным именем пользователя и паролем, он не перенаправляет на мою страницу входа в систему.Я перепробовал много вещей и просто не могу найти, где проблема.Я проверил свое соединение с базой данных, и все, кажется, работает.Я сравнил код с моим преподавателем курса, и не могу найти никакой разницы.Тем не менее, его работы, мои нет.Спасибо за любые предложения!

Вот мой код с вызовом Ajax для формы входа

   $("#loginform").submit(function (event) {

    event.preventDefault();

    var datatopost = $(this).serializeArray();

    console.log(datatopost);

    $.ajax({
        url: "login.php",
        type: "POST",
        data: datatopost,
        success: function (data) {
            if (data == "success"){
                window.location = "mainpageloggedin.php";
            }else{
                $("#loginmessage").html(data);
            }
        },
        error: function () {
            $("#loginmessage").html("<div class='alert alert-danger'>There was an error with the Ajax Call.  Please try again later!</div>");`


        }
    });
});




    <?php
session_start();

//Connect to database

include("connections.php");


//Check user inputs
//    Define error messages

$missingEmail = '<p><strong>Please enter your email!</strong></p>';
$missingPassword = '<p><strong>Please enter a password!</strong></p>';

if(empty($_POST["loginemail"])){

$errors .= $missingEmail;

}else{
    $email = filter_var($_POST["loginemail"], FILTER_SANITIZE_EMAIL);

}
//GET PASSWORDs

if(empty($_POST["loginpassword"])){

    $errors .= $missingPassword;

}else{
        $password = filter_var($_POST["loginpassword"], FILTER_SANITIZE_STRING);
}

if($errors){
    $resultMessage = '<div class="alert alert-danger">' . $errors . '</div>';
    echo $resultMessage;

}else{


    $email = mysqli_real_escape_string($link, $email);

$password = mysqli_real_escape_string($link, $password);

$password = hash('sha256', $password);

$sql = "SELECT * FROM users WHERE email = '$email' AND password='$password' AND activation='activated'";

$result = mysqli_query($link, $sql);

if(!$result){
    echo '<div class="alert alert-danger">Error running the query!</div>';

    exit;
}


if($count !== 1){

    echo '<div class="alert alert-danger">Wrong username or password</div>';


}
    else{
    //log the user in: set session variables
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);

    $_SESSION['user_id']=$row['user_id'];
    $_SESSION['username']=$row['username'];
    $_SESSION['email']=$row['email'];

//        header('location: mainpageloggedin.php');


}


}


?>

Спасибо

1 Ответ

0 голосов
/ 30 ноября 2018

используйте serialize вместо serializeArray для отправки формы:

$("#loginform").validate({
      rules: {
            loign_email: {
                required: true,
                email: true
            },
            login_password: {
                required: true,
            },
        },
        messages: {
            login_password: "Please enter a valid password",
            loign_email: "Please enter a valid email address",
        },

        submitHandler: function(form) {

        $.ajax({
            url: "login.php",
            type: "POST",
            data: new FormData(this),
            contentType: false,
            cache: false,
            processData:false,
            success: function (data) {
                if (data == "success"){
                    window.location = "mainpageloggedin.php";
                }else{
                    $("#loginmessage").html(data);
                }
            },
            error: function () {
                $("#loginmessage").html("<div class='alert alert-danger'>There was an error with the Ajax Call.  Please try again later!</div>");`

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