Я использую jQuery версии 1.6.2 и не могу перенаправить своих пользователей на главную страницу после входа в систему.На самом деле я могу, но если я сделаю это, я не смогу отобразить «сообщения об ошибках».
Можете ли вы мне помочь?
Мой код jQuery:
$(".enviar").click(function() {
var email = $(".postEmail");
var setEmail = email.val();
var senha = $(".postSenha");
var setSenha = senha.val();
$.ajax({
url: "actions/logar.php",
async: false,
cache: false,
type: 'POST',
data: "email="+ setEmail +"&senha="+ setSenha,
success:function(data){
if(data == 'true'){
window.location.href="home";
} else {
$(".resposta").html(data);
}
}
});
return false;
});
Где ".enviar" - моя кнопка отправки, а ".resposta" - это div, в котором я буду отображать сообщение об ошибке.
Мой код PHP:
if(!$AccountDAO->Registrado()){
$postEmail = addslashes(strip_tags(trim($_POST['email'])));
$postSenha = addslashes(strip_tags(trim($_POST['senha'])));
if ( !preg_match( '/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/', $postEmail )){
echo '<span class="error">O seu e-mail parece inválido</span>';
exit();
} elseif ( strlen($postSenha) < 4 ) {
echo '<span class="error">Digite uma senha com quatro ou mais caracteres</span>';
exit();
}
$validarUsuario = $SQL->prepare("SELECT * FROM `c_usuarios` WHERE `email` = :email AND `senha` = :senha");
$validarUsuario->bindParam( ':email', $postEmail, PDO::PARAM_STR );
$validarUsuario->bindParam( ':senha', hash('sha512', $postSenha), PDO::PARAM_STR );
$validarUsuario->execute();
if( $validarUsuario->rowCount() == true ){
$dadosUsuario = $validarUsuario->fetch(PDO::FETCH_ASSOC);
$_SESSION['uid'] = $dadosUsuario['uid'];
echo 'true';
} else {
echo '<span class="error">O e-mail ou a senha estão incorretos</span>';
}
}
?>
Я уже пробую "вернуть true"вместо" эхо "правда" ", но я получаю тот же результат: ничего.= (
Хорошо, извините, 4 мой английский (как вы можете видеть, я португальский), и это мой первый раз без Google Translate. А, если возможно, тоже, пожалуйста, оцените мои языковые навыки, ХАХАХ
Хорошо, смейя!
Обновление
После многих отладок (?) Я пришел к выводу, что всекод, следующий за
$dadosUsuario = $validarUsuario->fetch(PDO::FETCH_ASSOC);
$_SESSION['uid'] = $dadosUsuario['uid'];
, не выполняется. Действительно, «true» (из эха) выполняется нормально, но «true» (строка) имеет разрыв строки. См .:

Я не понимаю!: S Если я переместлю 'echo true' в начало моего источника, он будет отображаться нормально, без разрыва строки.