Моя JQUERY AJAX функция успеха не работает - PullRequest
0 голосов
/ 14 января 2020

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

Я редактировал некоторые вещи, все еще не работая

Это мой мой js. js

$(document).ready(function() {
    $(document).on("click", ":submit", function(e){ 

        var url;
        var username = $('#username').val();
        var password = $('#password').val();

        if($(this).val() == 'Log in'){
            url = 'login.php';
        }else if($(this).val() == 'Register'){
            url = 'insert.php';
        }

            if(/^[^\s@]+$/.test(username) && /^[^\s@]+$/.test(password)){
               $.ajax({
                    url: url,
                    type: "POST",
                    data: {
                        username: username,
                        password: password
                    },
                    cache: false,
                    //EDIT
                    success: function(dataResult){
                        var dataResult = JSON.parse(dataResult);
                        if(dataResult.statusCode==200){
                           alert('yesss');                  
                        }
                        else if(dataResult.statusCode==201){
                           alert("Error occured !");
                        }      
                    }
                });
            } else {
                alert('no');
            }
    });
});

Моя вставка . php

<?php

    include 'db.php';

    $username=$_POST['username'];
    $password=$_POST['password'];

    //EDIT
    $query ="INSERT INTO `accounts`(`username`, `password`) 
    VALUES ('$username','$password')";

        if (mysqli_query($con, $query)) {
            echo json_encode(array("statusCode"=>200));
        } 
        else {
            echo json_encode(array("statusCode"=>201));
        }

    mysqli_close($con);
?>

1 Ответ

2 голосов
/ 14 января 2020

Чтобы получить «что-то» в функции успеха, вы должны повторить что-то из PHP:

include 'db.php';

$username=$_POST['username'];
$password=$_POST['password'];

$query =mysqli_query($con, "INSERT INTO `accounts`(`username`, `password`) 
VALUES ('$username','$password')");

echo "something";

mysqli_close($con);

Вы захотите изменить свой PHP, чтобы получать значимые сообщения назад.

ПРЕДУПРЕЖДЕНИЯ!

Маленький Бобби говорит ваш сценарий подвержен риску SQL Инъекция Атаки. Узнайте о подготовленных инструкциях для MySQLi . Даже экранирование строки небезопасно!

Никогда не храните пароли в виде простого текста! Пожалуйста, используйте PHP встроенный в функциях для защиты паролем. Если вы используете PHP версию меньше 5.5, вы можете использовать password_hash() пакет совместимости . Нет необходимости экранировать пароли или использовать любой другой механизм очистки перед их хэшированием. При этом изменяет пароль и вызывает ненужное дополнительное кодирование.

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