Форма входа пользователя с использованием jquery ajax не работает должным образом, не перенаправляя на любую страницу - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь создать форму входа в систему с помощью jquery ajax, взяв информацию о пользователе из таблицы "reg" в базе данных.Но это не работает. Я хочу зайти на другую страницу под названием menu.php после входа в систему.Когда я нажимаю кнопку входа, ничего не отображается. Кто-нибудь может помочь, пожалуйста

    <script type="text/javascript">
         $(document).ready(function(){

$('#loginForm').submit(function(event) {
          event.preventDefault();
             $.ajax({
                url: "logindata.php",
                type: "POST",
                data: {
                    username: $("#username").val(),
                    password: $("#password").val()
                },
                success: function(response)
                {
                    if(response == 1)
                    {
                        window.location.href = "menu.php";
                    }
                    else
                    {
                        $("#errorMessage").html("Attempting Login...");
                    }
                }
            });

           });
    });
            </script>

Вот HTML:

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<center><b>Login</b></center><br>
                <form name="loginForm" id="loginForm"  action="" method="post" align="center">
       Username:    <input type="text" name="username" id="username"  /><br><br>
       Password:    <input type="password" name="password" id="password"  /><br><br><br>
                    <input type="submit" name="login" id="login" value="Sign In" />
                </form>

Страница запроса Mysql:

<?php
$conn =mysqli_connect("localhost", "root", "", "project");

$f="SELECT * FROM reg WHERE uname='" . $_POST["username"] . "' and password = '". $_POST["password"]."'";
$result = mysqli_query($conn,$f);
$row = mysqli_fetch_assoc($result);
if( $row[0] > 0 )
 {
        echo 'true';
    }
    else
    {
        echo 'false';
    }
    ?>

?>

Ответы [ 4 ]

0 голосов
/ 23 января 2019

Попробуйте:

change in jquery
$('#loginForm').submit(function(event) {
          event.preventDefault();
             $.ajax({
                url: "logindata.php",
                type: "POST",
                data: {
                    username: $("#username").val(),
                    password: $("#password").val()
                },
                success: function(response)
                {
                    if(response == 1)
                    {
                        window.location = menu.php;
                    }
                    else
                    {
                        $("#errorMessage").html("Attempting Login...");
                    }
                }
            });

           });

изменение php

<?php
$conn =mysqli_connect("localhost", "root", "", "project");

$f="SELECT * FROM reg WHERE uname='" . $_POST["username"] . "' and password = '". $_POST["password"]."'";
$result = mysqli_query($conn,$f);
$row = mysqli_fetch_assoc($result);
if( $row[0] > 0 )
 {
        echo 1;
    }
    else
    {
        echo 0;
    }
    ?>
exit;
?>
0 голосов
/ 23 января 2019

В вашем примере вы не вернули true / false, у вас есть возвращаемая строка. Вместо эха «Войти успешно»; echo true и false и в конце записи выход.

0 голосов
/ 23 января 2019

Пожалуйста, попробуйте с кодом ниже:

if(mysqli_num_rows($result)>0)
     {
            echo 1;
        }
        else
        {
            echo 0;
        }
   }

Код Ajax:

<script type="text/javascript">
        $('#loginForm').submit(function(event) {
          event.preventDefault();
             $.ajax({
                url: "logindata.php",
                type: "POST",
                data: {
                    username: $("#username").val(),
                    password: $("#password").val()
                },
                success: function(response)
                {
                    if(response == 1)
                    {
                        window.location = menu.php;
                    }
                    else
                    {
                        $("#errorMessage").html("Attempting Login...");
                    }
                }
            });

           });
        </script>

Источник

0 голосов
/ 23 января 2019

В вашем ответе у вас есть "Войти успешно" или "Не удалось войти в систему", нет слова "правда". Также позаботьтесь о внедрении SQL.

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