Регистрация сделана на PHP и AJAX не работает - PullRequest
0 голосов
/ 10 декабря 2018

По сути, я сделал логин / регистрацию с помощью PHP и Ajax для работы с phonegap.Логин работает, если я пытаюсь создать учетную запись с тем же адресом электронной почты, что и существующий, он отвечает, но когда я пытаюсь создать новую учетную запись, он говорит, что регистрация не удалась. ~ Выше есть код

Код PHP

<?php
$con = mysqli_connect("localhost","root","", "login") or die("connection error");
$email = $_POST['email'];
$password = $_POST['password'];

if(isset($_POST['register']))
{   
    $register = mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE email='$email'"));
    if($register == 0)
    {
        $insert = mysqli_query($con,"INSERT INTO users (email,password) VALUES ('$email','$password')");
        if($insert)                 
            echo "success";
        else
            echo "error";
    }
    else if($register != 0)
        echo "exist";
}
else if(isset($_POST['login']))
{
    $login = mysqli_num_rows(mysqli_query($con, "SELECT * FROM users WHERE email='$email' AND password`='$password'"));
    if($login != 0)
        echo "success";
    else
        echo "error";
}
mysqli_close($con);
?>

код AJAX // это код входа в систему

$("#loginButton").click(function(){
            var email= $.trim($("#email").val());
            var password= $.trim($("#password").val());

            $("#status").text("Authenticating...");
            var loginString ="email="+email+"&password="+password+"&login=";
            $.ajax({
                type: "POST",crossDomain: true, cache: false,
                url: url,
                data: loginString,
                success: function(data){
                    if(data == "success") {
                        $("#status").text("Login Success..!");
                        localStorage.loginstatus = "true";
                        window.location.href = "app.html";
                    }
                    else if(data == "error")
                    {
                        $("#status").text("Login Failed..!");
                    }
                }
            });
        });

   $("#registerButton").click(function(){
            var email= $.trim($("#email").val());
            var password= $.trim($("#password").val());

            $("#status").text("Creating New Account...");
            var dataString="email="+email+"&password="+password+"&register=";
            $.ajax({
                type: "POST",crossDomain: true, cache: false,
                url: url,
                data: dataString,
                success: function(data){
                    if( data == "success")
                        $("#status").text("Registered Success");
                    else if( data == "exist")
                        $("#status").text("Account is already there");
                    else if( data == "error")
                        $("#status").text("Register Failed");
                }
            });

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Убедитесь, что у вас включено разрешение доступа в Интернет в config.xml

0 голосов
/ 10 декабря 2018

Мне понадобилось время, чтобы выяснить проблему.и это очень простая ошибка, проверьте ваш запрос SELECT на синтаксическую ошибку.

1 выполненных запросов, 0 успешных, 1 ошибок, 0 предупреждений

Запрос: SELECT * ОТ пользователей ГДЕ электронная почта='ali@akashif.co.uk 'AND password` =' 123 '

Код ошибки: 1064 Ошибка в синтаксисе SQL;обратитесь к руководству, соответствующему вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с `` = '123'

после пароля, который нарушает запрос, есть дополнительный символ `.и запрос не выполняется, в результате mysqli_num_rows всегда возвращает 0.

...