J'espère que vous pouvez aider. Un peu de jQuery/AJAX newb ici.Formulaire de connexion SimpleModal PHP: comment rediriger sur succès/échec
J'ai un formulaire de connexion SimpleModal de base qui peut être appelé depuis la page d'accueil de mon site. Login.js appelle le script login.php qui vérifie ma base de données pour les informations d'identification d'un utilisateur.
Si la connexion est réussie, je définis quelques variables de session et j'utilise généralement la commande header pour envoyer l'utilisateur à sa page personnelle (ou la page d'erreur sur l'échec de connexion).
par ex. header ("Emplacement: restricted/index.php");
Impossible de fermer le formulaire de connexion modale et de rediriger la page d'accueil parent vers la page du membre. Je reste habituellement la place modale vide en disant « Merci »
Si je tente de fermer le formulaire modal avec
success: function (data) {
$('#login-container .login-loading').fadeOut(200, function() {
$('#login-container .login-title').html('Thank you!');
msg.html(data).fadeIn(200);
$.modal.close(); //have inserted this line
});
},
les modes de transport ferme mais je suis resté sur la page d'accueil. (L'utilisateur est connecté à ce stade mais la redirection n'a pas eu lieu).
Cela fait un jour ou deux que j'ai commencé à regarder autour de moi. J'ai jeté un coup d'œil sur le plugin de connexion wordpress mais je n'en suis pas le plus sage. Des idées?
Merci pour la réponse. Oui la redirection se passe en effet dans les coulisses. Nouveau à AJAX - il est difficile de voir ce qui se passe. J'ai maintenant l'en-tête ("Redirect: restricted/index.php"); sur la page cible restricted/index.php et j'ai maintenant l'en-tête HTTP Redirect. Exactement où devrais-je mettre la fonction ajaxSetup et comment puis-je l'appeler. Désolé pour une question aussi stupide. Je l'ai dans le code de la page avec une alerte> if (redirection) (redirection); ligne de débogage dans les balises de script, mais il ne fonctionne pas. Merci! – chakotha
@ user438858 - Que diriez-vous de * pas * rediriger, et au lieu d'envoyer un en-tête différent au client pour * qu'ils * peuvent rediriger, comme je l'ai ci-dessus ... vous venez d'ajouter cet entête si la connexion a été réussie? –
@ user438858 - Il peut être appelé n'importe où, juste une fois est tout ce dont vous avez besoin, avant de faire des demandes ajax. Si les requêtes ajax ont leur propre 'complete', vous devez changer un peu l'approche, est-ce le cas? –