2010-08-01 21 views
3

J'ai supprimé tous les tutoriels qui n'ont jamais fonctionné pour une raison ou une autre, et j'ai décidé de lancer ma propre fonctionnalité d'enregistrement/connexion par moi-même, et à ma grande surprise cela fonctionne! Mais ce que je ne comprends pas, c'est comment fonctionne la logique de garder quelqu'un connecté! Comme, une fois qu'ils se sont connectés, puis-je simplement leurs données à n'importe quelle autre page qu'ils visitent et une fois qu'ils sont sur la nouvelle page $_REQUEST qui publient des données de l'URL et affichent un message comme: "ouais, vous êtes toujours connecté"?Logique d'utilisateur de connexion PHP

Je suis un peu confus atm, donc j'espère que cette question ne vous déroute pas trop.

+1

Pourquoi ne pas nous dire ce que vous avez fait Je vous conseille également d'éviter '$ _REQUEST' et d'utiliser' $ _POST'/'$ _GET' /' $ _SESSION'/'$ _COOKIE' à la place – Artefacto

Répondre

1

Ayons nous avons des pages comme login.php after_login_page1.php after_login_page2.php

Vous pouvez suivre ces étapes simples

  1. Set $ ​​_SESSION [ 'id'] = $ userid // userid de db dans login.php

  2. ont toujours session_start() dans les pages successives comme after_login_page1.php, after_login_page2.php

  3. Vérifiez si (! isset ($ _ SESSION ['id'])) { header ("Emplacement: connexion.php ");}

  4. à la page logout.php donne $ _SESSION [ 'id'] = ''; et faire un session_destroy()
+1

Wow, cela semble vraiment simple! Merci :) Si j'ai des questions de suivi, puis-je vous demander? –

+0

C'est vraiment simple si vous savez comment :) – Blizz

1

Une fois connecté, vous avez généralement deux options. Stocker leurs détails ou un jeton d'authentification (quelque chose qui aidera le PHP sur le serveur à savoir qui est qui) dans un session ou le stocker dans un cookie. Les deux ont leurs avantages, mais vous devrez choisir celui qui fonctionne pour vous.

Si vous stockez des données dans une session, l'utilisateur ne peut pas accéder à ce que vous avez stocké, seul votre code peut le faire. C'est utile si vous voulez stocker say, leur identifiant ou leur nom d'utilisateur. Vous pouvez croire que ce sera toujours leur identifiant et leur nom d'utilisateur, car ils ne peuvent pas le modifier. Avec les cookies, l'utilisateur peut y accéder et les modifier car ils sont stockés sur leurs machines locales. Pour cette raison, vous devez être un peu plus sournois et hacher les détails des utilisateurs, puis vérifier qui il est avec une logique côté serveur. C'est un peu plus complexe.

Une mise en œuvre de la session pourrait ressembler à ceci:

session_start(); //Make sure you call this at the top of EVERY page 
if($passwordsMatch){ 
    $_SESSION['user'] = $_POST['username']; 
} 
//Now we have access to $_SESSION['user'] on every page. 

Sur une autre page sans rapport avec:

session_start(); 
print "Welcome, ".$_SESSION['user']; 
1

plus simple est de "garder les utilisateurs connectés" est d'utiliser les sessions PHP. Lorsque vous exécutez session_start() ;, PHP définit cookie avec SESSION_ID dans le navigateur des utilisateurs afin qu'il puisse identifier cet utilisateur. Après cela, vous pouvez définir toutes les données dans le tableau $ _SESSION qui sera sauvegardé en session entre les demandes de page.

1

Le plus simple est d'utiliser une session. Fondamentalement, PHP configure automatiquement un cookie (ou ajoute un morceau à l'url, en fonction de votre configuration) sur le système utilisateur et le charge automatiquement sur chaque page vue. Vous pouvez ensuite ajouter des données à la session et tant que le cookie n'a pas expiré (ou a été supprimé) et/ou que vous ne détruisez pas la session, vous disposez de ces données sur chaque page vue par l'utilisateur.

Jetez un oeil ici pour une petite introduction aux sessions: http://www.htmlgoodies.com/beyond/php/article.php/3472581/PHP-Tutorial-Sessions.htm

+0

Merci blizz :) –