基本上,我使用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+"®ister=";
$.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");
}
});
答案 0 :(得分:0)
确保您已在config.xml中启用互联网访问权限
答案 1 :(得分:-1)
我花了很长时间才找出问题所在。这是一个非常简单的错误,请检查您的SELECT查询中的语法错误。
已执行1个查询,0个成功,1个错误,0个警告
查询:SELECT * FROM users where WHERE email='ali@akashif.co.uk'并且 密码`='123'
错误代码:1064您的SQL语法错误;检查 与您的MySQL服务器版本相对应的手册 在'`='123'
附近使用的语法
在密码后面有一个额外的`,将破坏查询。并且查询失败,导致mysqli_num_rows始终返回0。