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;
});