Данные не передаются при входе в Ajax - PullRequest
0 голосов
/ 26 сентября 2019

Я новичок в PHP и Ajax.Я разрабатываю форму входа в систему с session, используя оба языка с MySql, просматривая видеоурок.Наконец, я получил сообщение об ошибке, например, неверное перенаправление email или password на страницу приветствия.

Код ниже:

<style>
  #box{
    width:100%;
    max-width:500px;
    border:1px solid #ccc;
    border-radius:5px;
    margin:0 auto;
    padding:0 20px;
    box-sizing:boader-box;
    height:270px;
  }
</style>

<div id=box>
  <form method="POST" class="form-signin">
    <div class="account-logo">
      <img src="assets/img/logo-dark.png" alt="">
    </div>
    <div class="form-group">
      <label> Email</label>
      <input type="email" name="email" id="email" autofocus="" class="form-control">
    </div>
    <div class="form-group">
      <label>Password</label>
      <input type="password" name="password" id="password"class="formcontrol">
    </div>
    <div class="form-group text-right">
      <a href="forgot-password.html">Forgot your password?</a>
    </div>
    <div class="form-group text-center">
      <input type="button"  class="btn btn-primary account-btn" name="login" value="DO LOGIN" id="login_button">
    </div>
    <div id="error">       </div>
    <div class="text-center register-link">
      Don’t have an account? <a href="register.html">Register Now</a>
    </div>
  </form>
</div>

Запрос Ajax будет:

$(document).ready(function(){
  $('#login_button').click(function(){
    var email = $('#email').val();
    var password = $('#password').val();

    if($.trim(email).length>0 && $.trim(password).length>0 ){
      $.ajax({
        type: "POST",  // Type of request to be send, called as method
        url: "auth/logged.php", // Url to which the request is send
        data: {"email":email,"password":password},
        cache:false,
        beforeSend:function()
        {
          $('#login_button').val("connecting.....");
        },
        success: function(data)
        {
          if(data){
            $('body').load("index.php").hide().fadeIn(1500);
          }else{
            var option ={
              distace :'40',
              direction:'left',
              times:3
            }
            $('#box').effect('shake',option,800);
            $('#login_button').val('Login');
            $('#error').html("<span class='text-danger'> Invalid username or password </span>");
          }
        }
      });
    }else{
      return false;
    }
  });
});

Файл logged.php будет

<?php
  include "dbconnection.php";
  session_start();

  if (isset($_POST['email'])  && isset($_POST['password']) ) {
    $email=mysqli_real_escape_string($conn,$_POST['email'] );
    $password=md5(mysqli_real_escape_string($conn,$_POST['password']) );
    $sql = "SELECT * FROM users WHERE email = '". $email."'  AND '". $password."'  ";
    $result= mysqli_query($conn,$sql);
    $num_row= mysqli_num_rows($result);

    if($num_row>0)
    {
      $data=mysqli_fetch_array($result);
      $_SESSION['username']=$data['username'];
     echo $data['username'];
    }
  }
?>

Всякий раз, когда я вводил какие-либо данные, правильные или неправильные, они перенаправлялись на страницу приветствия.Пожалуйста, помогите мне.

  • Элемент списка

1 Ответ

0 голосов
/ 27 сентября 2019

попробуйте это на вашем logged.php:

<?php
    include "dbconnection.php";
    session_start();
    if (isset($_POST['email'])  && isset($_POST['password']) ) {
        //i dont see your password colom name, so i guess it password
        if ($stmt = mysqli_prepare($conn, "SELECT username FROM users WHERE email=? AND password=?")) {
            $email = $_POST['email'];
            $password = md5($_POST['password']);
            mysqli_stmt_bind_param($stmt, "ss", $email, $password);
            mysqli_stmt_execute($stmt);
            mysqli_stmt_bind_result($stmt, $username);

            echo mysqli_stmt_fetch($stmt);
            $_SESSION['username']=$username;
            mysqli_stmt_close($stmt);
        }
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...