Я настраиваю страницу регистрации пользователя.Он работает в Chrome и Safari, но не в Firefox (последние версии Mac).Я работаю локально над MAMP.
Ожидаемый результат:
- Запрос Ajax отправляется после нажатия кнопки подтверждения.
- Если имя пользователя доступно, пользователь, пароль, адрес электронной почты вставляются в таблицу MySQL.Успех: скрытый div «Вы зарегистрированы».
- Иное, скрытый div «Имя пользователя недоступно»
Реальный вывод:
Вывод соответствует ожидаемому в Chrome и Safari.
В Firefox в таблицу ничего не вставляется.Скрытые элементы не отображаются, вместо этого вся веб-страница перезагружается.
Почему приведенный ниже код дает такие разные результаты?
Javascript
$(function() {
$("#registersubmit").click(function() {
var dataString = $("#registerclick").serialize();
if (registerclick.user.value == "")
{
$('.error').show();
registerclick.user.focus();
return (false);
}
else
{
$.ajax({
type: "POST",
url: "register.php",
data: dataString,
success: function(reg) {
if (!reg)
{
$('.userexists').hide();
$('.error').hide();
$('.success').fadeOut(200).show();
}
else
{
$('.userexists').show();
}
}
});
}
return false;
});
});
PHP для MYSQL Insert
$user = ($_POST['user']);
$email = ($_POST['email']);
$time = time();
$password = ($_POST['password']);
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
include("config.php");
$sql = "INSERT INTO users (username, password, email,timestamp) VALUES ('".mysql_real_escape_string($user)."','".mysql_real_escape_string($password)."', '".mysql_real_escape_string($email)."', '$time')";
$result = mysql_query($sql);
if (!$result)
{
die(mysql_error());
}
}
Предположим, что шифрование пароля и меры предосторожности при выходе из MySQLбыло сделано.