показывает неверный пароль или имя пользователя, даже если это правильный пароль или имя пользователя - PullRequest
0 голосов
/ 11 июня 2018

Я создаю форму входа в систему с помощью AJAX, я пытаюсь заставить ее работать за 4 дня, но не могу этого сделать, у меня есть несколько проблем, т. Е. Если я также ввожу действительное имя пользователя и пароль, то также не регистрируетсяна странице, я не знаю, где я иду не так, пожалуйста, любой может узнать, где я иду не так, это было бы очень полезно полностью.

login.php

<?php 
    session_start(); 
    $mysqli  = mysqli_connect("localhost","root","","ajax1");
?>
<!DOCTYPE HTML>  
<html>

    <head>
        <title> login script with ajax</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    </head>

    <body style="background-color:#b3ffff">

        <div style="padding-left:500px ; padding-top:200px">

            Username:   <input id="username" type="text" name="username" placeholder="username"><br><br>
            Password:   <input id="password" type="password" name="password" placeholder="Password"><br><br>
                        <input id="submit" name="submit" type="button" value="Log In">
                        <p style="color:black">Havent Registered? <a href="index.php">Register</a>.</p><br><br>
                        <div id="display" style="color:red"></div>

            <script>
                $(document).ready(function(){
                    $("#submit").click(function(){
                        var password = $("#username").val();
                        var password = $("#password").val();

                        var datastring = 'username=' + username + '&password=' + password;

                        if(username=='' || password==''){
                            $("#display").html("Please Enter All The Fields");
                        }
                        else{
                            $.ajax({
                            type: "POST",
                            url: "success.php",
                            data: datastring,
                            cache: false,
                            success: function(result){
                                    $("#display").html(result);
                                    window.location = "welcome.php";
                                }
                            });
                        }
                        return false;
                    });
                });
            </script>
        </div>

    </body>
</html>

success.php

<?php

        $mysqli  = mysqli_connect("localhost","root","","ajax1");
        session_start();

        if (isset($_SESSION['id'])){
            header('location:welcome.php');
        }

        $myusername = mysqli_real_escape_string($mysqli,$_POST['username']);
        $mypassword = mysqli_real_escape_string($mysqli,$_POST['password']); 

        $sql = "SELECT * FROM users WHERE username = '$myusername' AND password='$hashed_password'";
        $result = mysqli_query($mysqli,$sql);
        $row = mysqli_fetch_array($result);
        $hashed_password=$row['password'];

        if(password_verify($mypassword, $hashed_password)) {
            $_SESSION['login_user'] = $myusername;
            //$_SESSION['id']=$row['userid'];
            echo'Successfully Registered';
        exit();
        }    
        else 
        {
        echo'Invalid username or password';
        }
?>

welcome.php

<?php
    session_start();
    if (!isset($_SESSION['id'])) {
        header('location:login.php');
    }
?>

<!DOCTYPE html>
<html>
    <body>

        <div style="Padding-left:200px; padding-top:100px">
            <?php
                $mysqli  = mysqli_connect("localhost","root","","ajax1");
                $query=mysqli_query($mysqli,"select * from `users` where userid='".$_SESSION['id']."'");
                $row=mysqli_fetch_array($query);
                echo 'Welcome - '.$row['username'];
            ?>

            <!--br><br>
                <a href="logout.php">Logout</a>
            <br><br-->

        </div>

    </body>
</html>

Ответы [ 3 ]

0 голосов
/ 11 июня 2018

В вашей функции отправки в вашем login.php вы указали неверные переменные.Измените их на следующее:

var username = $("#username").val();
var password = $("#password").val();

После того, как вы это сделаете, сделайте то, что предложил Сугамар в своем ответе.

0 голосов
/ 11 июня 2018

Вы дважды задали пароль вместо имени пользователя.

var password = $("#username").val();
var password = $("#password").val();

Исправьте это и проверьте свой код еще раз.

0 голосов
/ 11 июня 2018

удалить AND password='$hashed_password'

из

$sql = "SELECT * FROM users WHERE username = '$myusername' AND password='$hashed_password'";

, просто проверьте, существует ли имя пользователя

, используя

$sql = "SELECT * FROM users WHERE username = '$myusername'";

, а затем проверьте парольиспользуя password_verify()

измените ваш

password_verify(){
     echo 'success';
}else{
  echo 'error';
}

и в ajax

success:function(data){
   if(data.trim() == 'success'){
       window.location.href='success.php'
    }else if(data.trim()== 'error'){
       ///use some javascript to display the error message
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...