jQuery和php注册脚本不工作

jQuery和php注册脚本不工作,php,jquery,mysql,mobile,Php,Jquery,Mysql,Mobile,我正在使用jQuery和PHP开发一个应用程序的用户注册和登录。我无法将记录插入我的成员数据库。当我点击提交时,我会收到“未注册”警报,它会将我带回注册页面 我的jQuery提交按钮和HTML句柄: $('#regsubmit').click(function(){ $.post("register.php",{reguser: $("#reguser").val(), fname: $("#fname").val(),lname: $("#lname").val(),regp

我正在使用
jQuery
PHP
开发一个应用程序的用户注册和登录。我无法将记录插入我的成员数据库。当我点击提交时,我会收到“未注册”警报,它会将我带回注册页面

我的
jQuery
提交按钮和
HTML
句柄:

$('#regsubmit').click(function(){
         $.post("register.php",{reguser: $("#reguser").val(), fname: $("#fname").val(),lname: $("#lname").val(),regpass: $("#regpass").val(), regemail: $("#regemail").val()},function(data){
             if(data == true){
                alert("Registered"); 
             }else{
                alert("Not Registered"); 
             }
             });
      });

<div data-role="content">
<div data-role="collapsible"><h2>Register</h2>
   <form action="" method="post" id="registrationform">
   <div data-role="fieldcontain">
      <label for="fname">First name:</label>
      <input type="text" name="fname" id="fname" value=""  />
      <div id="fnamecheck"></div>
    </div>
       <div data-role="fieldcontain">
      <label for="lname">Last name:</label>
      <input type="text" name="lname" id="lname" value=""  />
      <div id="lnamecheck"></div>
    </div>
       <div data-role="fieldcontain">
      <label for="regemail">Email:</label>
      <input type="email" name="regemail" id="regemail" value=""  />
      <div id="emailcheck"></div>
    </div>
 <div data-role="fieldcontain">
      <label for="reguser">Username:</label>
      <input type="text" name="reguser" id="reguser" value="" />
      <div id="usernamecheck"></div>
    </div>
    <div data-role="fieldcontain">
      <label for="regpass">Password:</label>
      <input name="regpass" type="password" id="regpass" value="">
      <div data-role="fieldcontain"><label for="confirmregpass">Confirm Password:</label>
      <input name="confirmregpass" type="password" id="confirmregpass" value=""></div>
    </div>
    <input name="regsubmit" type="submit" id="regsubmit" value="Register" data-icon="check" data-theme="a"/>
   </form>
       </div>
$('#regsubmit')。单击(函数(){
$.post(“register.php”),{reguser:$(“#reguser”).val(),fname:$(“#fname”).val(),lname:$(“#lname”).val(),regpass:$(“#regpass”).val(),regemail:$(“#regemail”).val(),函数(数据){
如果(数据==true){
警报(“已注册”);
}否则{
警报(“未注册”);
}
});
});
登记
名字:
姓氏:
电邮:
用户名:
密码:
确认密码:
和my register.php:

<?php
$MYSQL_SERVER =  "localhost";
$MYSQL_USER = "root";
$MYSQL_PASSWORD = "password";

        $db = mysql_connect($MYSQL_SERVER, $MYSQL_USER, $MYSQL_PASSWORD ) or die(mysql_error());
    mysql_select_db("hedonsof_conflict") or die(mysql_error());

        $fname = $_POST['fname'];
        $lname = $_POST['lname'];
        $email = $_POST['regemail'];
        $reguser = $_POST['reguser'];
        $regpass = $_POST['regpass'];
        //Username check
        $usercheck = mysql_query("SELECT * FROM members WHERE username='".$reguser."'");
        if(empty($fname)||empty($lname)||empty($email)||empty($reguser)||empty($regpass)){
            if(empty($fname)){
                $errors[] = "Missing first name.";
            }
            if(empty($lname)){
                $errors[]= "Missing last name.";
            }
            if(empty($email)){
                $errors[]= "Missing email.";
            }
            if(empty($reguser)){
                $errors[]= "Missing user name.";
            }
            if(empty($regpass)){
                $errors[] = "Missing password.";
            }
        }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
            $errors = "Not a valid eail address.";
        }else{
            $fname = strip_tags($fname);
            $fname = stripslashes($fname);
            $fname = trim($fname);

            $lname = strip_tags($lname);
            $lname = stripslashes($lname);
            $lname = trim($lname);

            $email = strip_tags($email);
            $email = stripslashes($email);
            $email = trim($email);

            $reguser = strip_tags($reguser);
            $reguser = stripslashes($reguser);
            $reguser = trim($reguser);

            $regpass = strip_tags($regpass);
            $regpass = stripslashes($regpass);
            $regpass = trim($regpass);

            $sql = mysql_query("INSERT INTO members (username, fname, lname, password, email) VALUES('$reguser','$fname','$lname','$regpass','$email)") or die(mysql_error());

                $msg = "Thanks for Registering.";
                if($msg){
                echo true;
            }else{
                $errors[] = "Sorry error with database at this time.";  
                echo $errors;
            }
        }
?>
试试这个:

$('#regsubmit').click(function(e){
   e.preventDefault();

      $.post("register.php",{reguser: $("#reguser").val(), fname: $("#fname").val(),lname: $("#lname").val(),regpass: $("#regpass").val(), regemail: $("#regemail").val()},function(data){
         if(data == true){
            alert("Registered"); 
         }else{
            alert("Not Registered"); 
         }
      });

    return false;
});

我相信
data
不是一个值为
true
的布尔值,而是一个字符串。因此,我建议您做两件事(如果您不打算使用JSON),将php中的
echo
行更改为
echo“true”
在Javascript中使用
检查if(data==“true”)
我认为@Adnan在这个问题上是正确的,数据是一个字符串响应,除非你告诉jQuery,否则你也应该以字符串的形式回显它,在控制台中检查服务器的输出。谢谢我做了这个更改,但问题仍然存在。在你的Javascript ajax响应函数中,做一个
console.log(data)
并告诉我们它说了什么。你的PHP有很多问题。1) 在运行qwueries之前,使用mysqli_real_escape_字符串对变量进行转义。2) 您不需要一个主if for errors循环,因为您已经在检查每个值3)在哪里初始化erros数组?4) 您的INSERT查询中没有$email后的收盘报价mar。5) 无效电子邮件并不意味着其他字段不为空,反之亦然。6) 尽管运行了一个查询,但实际上并没有检查新用户名是否已经在数据库中。它实际上并不阻止输入重复的值。我可以继续…@RapsFan1981你有没有试着输入数据以发出警报,以及它从代码中返回了什么?你的数据似乎没有返回任何东西,但我现在已经修复了它。
$('#regsubmit').click(function(e){
   e.preventDefault();

      $.post("register.php",{reguser: $("#reguser").val(), fname: $("#fname").val(),lname: $("#lname").val(),regpass: $("#regpass").val(), regemail: $("#regemail").val()},function(data){
         if(data == true){
            alert("Registered"); 
         }else{
            alert("Not Registered"); 
         }
      });

    return false;
});