2010-11-27 27 views
0

Je veux créer un formulaire de connexion sur mon site. Et si l'utilisateur se connecte, je le veux 1.stay connecté pendant qu'il reste sur mon site 2. rester connecté après la fermeture du navigateur et le redémarrage de l'ordinateur.rester connecté pendant votre séjour sur le site

Quelles technologies puis-je utiliser? J'écris un site en PHP 5.2. Merci!

+0

Migrer cela stackoverflow –

+3

double possible de [meilleures pratiques pour se souvenir de moi fonction] (http://stackoverflow.com/questions/3531377/best-practise-for-remember-me-feature) –

Répondre

3

L'idée de base d'un formulaire de connexion est de vérifier les informations d'identification lorsque la personne se connecte et de définir un cookie pour mémoriser les informations d'identification lorsqu'une nouvelle page est chargée.

Vous pouvez consulter la méthode setcookie (http://us.php.net/setcookie) pour apprendre à configurer un cookie.

Vous pouvez également regarder dans des sessions (http://us.php.net/manual/fr/function.session-start.php) qui est un moyen de stocker des données côté serveur pour un utilisateur spécifique.

L'article suivant vous donnera une meilleure idée de la façon d'écrire un formulaire de connexion: http://www.devshed.com/c/a/PHP/Creating-a-Secure-PHP-Login-Script/

Edit: Comme John l'a souligné, il y a beaucoup de problèmes de sécurité lors de l'ajout d'une connexion à votre page. Vous devez savoir que les cookies peuvent être piratés et que les sessions peuvent être volées.

Quelques astuces pour éviter ceci:

  • Assurez-vous qu'il n'y a aucun moyen pour les gens d'injecter un code JavaScript dans votre page. Par exemple: http://ha.ckers.org/xss.html
  • Vous devez utiliser des connexions HTTPS sur les pages qui nécessitent une connexion car cela empêchera le cookie de voler sur des connexions non protégées.
  • Vous pouvez vouloir invalider un cookie si l'adresse IP d'origine a changé au cas où un cookie serait volé.

Hope this helps,

  • Christian
+0

Je voudrais voir cette réponse mise à jour avec les ramifications de sécurité d'usin g cette fonctionnalité comme le piratage de cookies, etc. –

+0

Vous devez utiliser des connexions https sur * toutes * les pages; le cookie peut toujours être volé facilement après la connexion initiale si vous revenez à http. Voir http://codebutler.github.com/firesheep/ pour un exemple d'extension firefox pour faire exactement cela. –

+0

En outre, vous devez stocker le minimum absolu dans les cookies; rien lié à la sécurité.Donc * n'utilisez pas * setcookie comme suggéré par l'OP; utilisez plutôt l'approche de session, et seul un identifiant de session unique sera stocké dans un cookie. –

-1

sessions rester aussi longtemps que le navigateur Web est activé. Quand il est fermé, la session est terminée.

Les cookies, par contre, restent aussi longtemps que vous le leur dites.

Vous pouvez lire ces derniers à http://www.php.net ou http://www.tizag.com:

Sessions: http://www.tizag.com/phpT/phpsessions.php

Cookies: http://www.tizag.com/phpT/phpcookies.php

+0

Désolé, mais vous êtes complètement à plat. Les sessions sont terminées après un délai d'attente spécifié sur le serveur ou si elles sont explicitement interrompues sur le serveur. Si le client supprime le cookie de session, il peut perdre sa référence à la session, ce qui arrive parfois (selon les paramètres) lorsque le navigateur est fermé, mais même si la session est encore en ligne sur le serveur, c'est la référence perdue. –

+0

Eh bien, c'est ce que dit tizag.com, je suppose qu'ils ont tort ou juste dépassé alors ... – Crembo