如果密码匹配,用户名或电子邮件尚未使用,则下面的代码用于将值插入MySQL数据库。此代码在另一页上从ajax调用。当它被调用时,页面将我重定向到register.php,而不是由ajax在后端完成。有没有人看到任何可能导致此问题的问题?它没有给我任何错误,只是一个空白的白页。
$user = strip_tags(htmlspecialchars($_POST['user'], ENT_QUOTES));
$pass = strip_tags(htmlspecialchars($_POST['pass'], ENT_QUOTES));
$cpass = strip_tags(htmlspecialchars($_POST['cpass'], ENT_QUOTES));
$age = strip_tags(htmlspecialchars($_POST['age'], ENT_QUOTES));
$email = strip_tags(htmlspecialchars($_POST['email'], ENT_QUOTES));
$country = strip_tags(htmlspecialchars($_POST['count'], ENT_QUOTES));
$lang = strip_tags(htmlspecialchars($_POST['lang'], ENT_QUOTES));
$mdpass = md5($pass);
$mdcpass = md5($cpass);
$created = Date("Y-m-d");
$result = mysql_query("SELECT username,email FROM tableName WHERE username = '$user'");
while ($row = mysql_fetch_array($result))
{
if ($row['username']>0) {
echo 'nvuname';
}
elseif ($row['email']>0)
{
echo 'nvemail';
}
else
{
if ($mdpass == $mdcpass && $age>>14)
{
mysql_query("INSERT INTO tableName (username, pword, email,created,admin,rnumenab,autoreload,country,mailenab,updates,lang) VALUES ($user, $mdpass, $email, $created,'0','1','1',$country,'1','0',$lang)");
echo 'success';
}
}
JavaScript的:
$("#regsubmit").click(function() {
var action = $("#mainReg").attr('action');
var form_data = {
user: $("#user-reg").val(),
pass: $("#pass-reg").val(),
cpass: $("#cpass-reg").val(),
email: $("#email").val(),
age: $("#age").val()
};
$.ajax({
type: "POST",
url: action,
data: form_data,
success: function(result)
{
if(result=='success') {
$('#register-action').animate({
opacity : '-=1',
bottom : '-=60%'
}, 600);
$('#register-action-bckgnd').hide();
$('.message').fadeOut(600);
} else {
$('.regerror').fadeIn(600);
}
}
});
return false;
});
谢谢,如果您发现任何问题,请告诉我们。非常感谢你!
另外:如何清理输入,以便不包含HTML标签或者strip_tags是否这样做?感谢。
编辑:它现在可以正常工作并提交页面不会重新加载,但它总是会返回错误而不是成功,即使我确定我使用的是打开的电子邮件,用户名。事实证明我有('$ age')而不是('#age')。想法?答案 0 :(得分:1)
虽然我没有看到你的javascript,但当ajax调用导致空白页面时,通常意味着页面正常发布而不是(仅...)由ajax发布。
您需要添加类似
的内容event.preventDefault();
或
return false;
到你的javascript点击/提交功能。
编辑:在没有看到html的情况下,您使用的是点击处理程序,虽然该点击处理程序可能会返回false,但这并不意味着表单无法正常提交。我会将javascript附加到表单submit-handler而不是提交。
答案 1 :(得分:1)
尝试使用普通按钮代替提交按钮,例如
<button id="regsubmit">register</button>
而不是:
<input type="submit" id="regsubmit" value="register" />
或者您可以执行$("form-seletor").submit(function(){ return false; });