2011-12-28 4 views
0

J'ai été capable de créer un formulaire de connexion en utilisant 2 méthodes différentes.Script de connexion JQuery efficace

1) Utilisez $ .POST pour envoyer un mot de passe au script PHP du serveur qui renvoie un vrai drapeau de succès. Le formulaire doit ensuite être soumis une deuxième fois afin que PHP 'header' puisse être appelé pour charger une nouvelle page (ceci a l'avantage ajax qu'un message d'erreur peut être passé si l'indicateur de succès retourne false).

2) Utilisez JQuery Submit permettant à l'en-tête PHP du serveur de rediriger vers une nouvelle page lors de la première soumission. Cependant, si le mot de passe est incorrect, il n'y a aucun moyen de récupérer une valeur retournée et d'afficher un message d'erreur - une nouvelle page complète doit être chargée. Y a-t-il moyen d'obtenir le meilleur des deux mondes, c'est-à-dire que la fonction $ .POST ou l'en-tête PHP peut être redirigée vers une nouvelle page lors de la première soumission OU Soumettre une valeur de retour?

Répondre

1

Vous devez envoyer une requête AJAX et utiliser Javascript pour définir location = some URL s'il réussit.

Notez que vous devrez utiliser la page de connexion initiale sur SSL.

2

Renvoie juste l'URL de redirection et l'indicateur de succès. Par exemple. JSON { success: true, redirect: 'http://www.example.com/logged_in.php' } et utiliser javascript window.location.href

.post('login.php', { username: $('#username').val(), password: $('#password').val() }, function(response) { 

if (response.success) { 
window.location.href = response.redirect; 
} else { 
// User is not logged in 
} 

}, 'json'); 
0

Je voudrais créer un formulaire qui envoie le nom d'utilisateur et mot de passe via POST au serveur. Si userlogin a réussi, faites avec la commande header() une redirection vers la page sécurisée.

Si le login a déclenché une erreur le script PHP retourne simplement la page courante (avec le formulaire de connexion) et un message d'erreur, pour informer l'utilisateur de son erreur.

Maintenant, tout le monde peut utiliser le login (même ceux qui ont désactivé js). Pour le rendre un peu plus confortable, vous pouvez faire une requête ajax, au lieu de soumettre le formulaire. Si la connexion a réussi, vous pouvez obtenir le code d'état (et de toute façon, décrit dans le jquery ajax documentation) l'emplacement de redirection. Sinon, le serveur renverra toute la page et vous pourrez remplacer le formulaire actuel par le formulaire contenant dans le répondeur.

Ceci est juste une idée de comment gérer un tel login.