Форма входа, вызов Ajax функции PHP

У меня есть форма входа, в которой я хочу передать данные из нее с помощью Ajax в функцию PHP в другом файле. Это сделано для того, чтобы страница не перезагружалась, когда пользователь входит в систему.

Прямо сейчас ничего не происходит, когда пользователь пытается войти в систему. Похоже, что access.php не обрабатывает данные, отправленные из Ajax.

Может кто-нибудь сказать мне, почему это не работает? Каковы возможные причины?

index.html:

      <div class = "login-form">
      <form method = "post" action = "index.php">
          <input id = "username" type = "text" placeholder = "Username...">
          <input id = "password" type = "password" placeholder = "Password...">
          <button id = "button" type = "submit">Login</button>
      </form>

      <script src = "http://code.jquery.com/jquery-3.3.1.min.js" integrity = "sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8 = " crossorigin = "anonymous"></script>
      <script type = "text/javascript">
      $('#button').click(function(e) {
          e.preventDefault();
          var username = $('#username').val();
          var password = $('#password').val();
          $.ajax({
              type: 'POST',
              url: 'resources/includes/access.php',
              data: {
                func: 'loginSubmit',
                usernamePHP: username,
                passwordPHP: password
               },
              success: function(response) {
                  $('#result').html(response);
              }
          });
      });
      </script>
  </div>

access.php:

function loginSubmit(){
  require '../dbh.inc.php';
  $mailuid = $_POST['usernamePHP'];
  $password = $_POST['passwordPHP'];
  if (empty($mailuid) || empty($password)){
    header("Location: ../../index.php?error=emptyfields");
    exit();
  }
  else{
    $sql = "SELECT * FROM users WHERE uidUsers=? OR emailUsers=?;";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)){
      header("Location: ../../index.php?error=sqlerror");
      exit();
    }
    else{
      mysqli_stmt_bind_param($stmt, "ss", $mailuid, $password);
      mysqli_stmt_execute($stmt);
      $result = mysqli_stmt_get_result($stmt);
      if ($row = mysqli_fetch_assoc($result)){
        $pwdcheck = password_verify($password, $row['pwdUsers']);
        if ($pwdcheck == false) {
          header("Location: ../../index.php");
          exit();
        }
        else if ($pwdcheck == true) {
          session_start();
          $_SESSION['userId'] = $row['idUsers'];
          $_SESSION['userUid'] = $row['uidUsers'];
          header("Location: ../../index.php?login=success");
          exit();
        }
        else{
          header("Location: ../../index.php");
          exit();
        }
      }
    }
  }
}

добавьте конец функции, просто поместите loginSubmit() за пределы функции

Masivuye Cokile 20.12.2018 15:33

Какую отладку вы сделали? Можете ли вы повторить значения поста? Вы уверены, что эта функция вызывается?

nerdlyist 20.12.2018 15:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
63
1

Ответы 1

Из того, что я вижу из документация, добавление имени функции в качестве свойства данных, как и вы, не вызывает эту функцию;

data Type: PlainObject or String or Array

Когда вы вызываете access.php, файл просто содержит определение функции, вы на самом деле не вызываете его.

Итак, у вас есть два варианта. Либо вызовите функцию, добавив loginSubmit() после функции (в конце access.php), либо полностью удалите код на access.php из функции.

Другие вопросы по теме