Ошибка при входе с действительными учетными данными - 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">

            Name: <input id="name" type="text" name="name" placeholder="Enter name"><br><br>
            E-mail: <input id="email" type="email" name="email" placeholder="Enter E-mail"><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 name = $("#name").val();
                        var email = $("#email").val();

                        var datastring = 'name=' + name + '&email=' + email;

                        if(name=='' || email==''){
                            $("#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

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


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

    if (isset($_POST['submit'])){

        // removes backslashes
        $name = stripslashes($_REQUEST['name']);

        //escapes special characters in a string
        $name = mysqli_real_escape_string($mysqli,$name);

        // removes backslashes
        $email = stripslashes($_REQUEST['email']);

        //escapes special characters in a string
        $email = mysqli_real_escape_string($mysqli,$email);

        //Checking is user existing in the database or not
        $query = "SELECT * FROM `users` WHERE name='$name' and email='$email'";
        $result = mysqli_query($mysqli,$query);
        $row1 = mysqli_fetch_array($result);
        $rows = mysqli_num_rows($result);

        if($rows==1){
            $_SESSION['name'] = $name;
            $_SESSION['id']=$row1['userid'];
            echo 'Logged in Successfully '
        }
        else{
            echo ' Invalid Name or E-MAIL ';
        }
    }

?>

welcome.php

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

<!DOCTYPE html>
<html>
    <body>

        <?php
            include_once 'connect.php';
            $query=mysqli_query($mysqli,"select * from `users` where userid='".$_SESSION['id']."'");
            $row=mysqli_fetch_array($query);
            echo 'Welcome - '.$row['username'];
        ?>

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

    </body>
</html>

Ответы [ 2 ]

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

Ваши AJAX и PHP-коды требуют некоторого исправления.Также попробуйте использовать пароль при входе вместо адреса электронной почты и только имени.Попробуйте исправить как код AJAX, так и код PHP.

Используйте следующий код в AJAX.

<script>
    var name = $("#name").val();
    var email = $("#email").val();

    var formData = {
        'name'              : name,
        'email'             : email
    };

    if(name=='' || email==''){
         $("#display").html("Please Enter All The Fields");
    } else {
         $.ajax({
              type: "POST",
              url: "success.php",
              data: formData,
              dataType    : 'json', // what type of data do we expect back from the server
              encode          : true
              success: function(data){
                   console.log(data);
                   if(data == 1) {                       
                       window.location = "welcome.php";
                   } else {
                       $("#display").html("Please Enter All The Fields");
                   }
              }
          });
      }


 </script>

в PHP:

вместо $ _REQUEST ['name'], $ _REQUEST ['email'] попробуйте использовать $ _POST ['name'] и $ _POST ['email']

, затем echo '1' для успеха или echo '0' в случае неудачи.

попробуйте собрать его в блоке bby и проверять наличие ошибок при его разработке

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

Вам действительно нужно сделать это как можно проще для устранения неполадок.Затем, когда вы это заработаете, медленно добавляйте в него больше кода, пока все не заработает.Делайте это по одному шагу за раз.

Измените свою страницу success.php следующим образом:

<?php

$myPostArray = array(

  'name'  => $_POST['name'],
  'email' => $_POST['email']

);


echo json_encode($myPostArray);

?>

login.php на это:

  <!DOCTYPE HTML>
<html>

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

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

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

    Name: <input id="name" type="text" name="name" placeholder="Enter name" required><br><br>
    E-mail: <input id="email" type="email" name="email" placeholder="Enter E-mail" required><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>

  </div>

  <script>

  $(document).ready(function(){

    $("#submit").click(function(){

      var name = $("#name").val();
      var email = $("#email").val();

      if(name  != '' && email != ''){

        var datastring = 'name=' + name + '&email=' + email;

        $.ajax({

          url: "success.php",
          type: "POST",
          cache: false,
          data: datastring,
          dataType: 'json',
          success: function(data){
            console.log(data); //This will show what you get back from success.php.
            if (data) {
              //It works, do something.
              alert('Here is your response from the php page:' + response);
              console.log('Here is your response from the php page:' + 'Name: ' + data['name'] + ' ' + 'Email: ' + data['email']);

            } else{
              //It does not work, do something.
              alert('Your ajax failed to get the info from your php page. Keep troubleshooting');
              console.log('Your ajax failed to get the info from your php page. Keep troubleshooting');

              }

          }

        });

      }else{

        alert('You must enter a valid name and email.');

        }

    });

  });

  </script>

  </body>

</html>

Вы действительнонужно использовать консоль, чтобы помочь вам в решении этой проблемы.Вы получаете гораздо более подробную информацию.Прекратите использование alert () для устранения неполадок.

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