J’ai un problème avec une simple connexion avec ajax, apparemment tout va bien, mais je ne sais pas ce qui ne va pas, car je dois envoyer un message au client pour lui indiquer que les informations utilisateur sont correctes, puis redirect vers la page principale.
Code source
<meta http-equiv='Content-type' content='text/html; charset=' /> Red Social Basica Login User/Email Password Enter Sign up $(document).ready(function(){ $('#lnklogin').click(function() { $('#dvlogeo').fadeToggle(200, function() { var divID = $('#dvlistipopubs'); var openDiv = $(this).is(':visible') ? divID : null; }); return false; }); $('#lnkenter').click(function() { var usremail=$('#txtusremail').val(), password=$('#txtpassword').val(); $.ajax({ type: 'POST', url: "account/login.php", data: 'usremail=' + usremail + '&password=' + password, success: function(data) { if(data=='ok'){ document.location="account/main.php" }else{ alert('Access denied'); } } }); return false; }); });
J’ai utilisé firebug pour vérifier la réponse du serveur et j’imprime «ok» si l’utilisateur et le mot de passe sont corrects et une erreur en cas d’erreur, le problème est que cela ne fonctionne pas ici
success: function(data) { if(data=='ok'){ document.location="account/main.php" }else{ alert('Access denied'); } }
La solution que j’ai trouvée était celle-ci, en utilisant json
dans mon ajax
$.ajax({type: 'GET', dataType: 'json', url: "login.php", data: 'usremail=' + usremail + '&clave=' + clave }).done(function(data) { if (data.mensaje == "ok") { document.location = "index.php"; } else { $('#dvmsjlogin').html(data.mensaje); } });
dans mon php
if ($auth->authenticate()) { $res['mensaje'] = 'ok'; }else{ $res['mensaje']='error'; } echo json_encode($res);
essayez d’utiliser ce code avec fonction (texte de la réponse);)
success:function(responseText){ // Get the result and asign to each cases if(responseText == ok){ document.location="account/main.php" ; } else{ alert('Access denied'); } } });