2010-03-23 8 views
1

Yo. J'essaie de faire un simple système de connexion en PHP et mon problème est le suivant: je ne comprends pas vraiment les sessions. Maintenant, lorsque j'identifie un utilisateur, j'exécute session_register ("user"); mais je ne comprends pas vraiment ce que je fais. Est-ce que cette variable de session contient des informations identifiables, de sorte que je peux par exemple le sortir via $ _SESSION ["user"] ou dois-je stocker le nom d'utilisateur dans une variable séparée? Merci.Connexion PHP, stockage des variables de session

Répondre

10

Laissez-moi vous mettre au courant.

Appelez la fonction session_start(); au début de votre script (il est donc exécuté chaque appel de page).

Cela rend les sessions actives/fonctionnent pour cette page automagiquement. À partir de là, vous pouvez simplement utiliser le tableau $ _SESSION pour définir les valeurs.

par exemple.

$_SESSION['hello'] = 'world'; 

La prochaine fois que la page se charge (autre demande), ce travail wil/arriver:

echo $_SESSION['hello']; //Echo's 'world' 

Pour détruire simplement une variable, unset que l'on:

unset($_SESSION['hello']); 

Pour détruire toute la session (et toutes les variables):

session_destroy(); 

C'est tout ce qu'il y a à propos des bases de sessions.

0

$ _SESSION ['user'] doit être défini sur le nom/id de votre utilisateur de sorte que lorsque vous essayez de le lire la prochaine fois, vous puissiez identifier cet utilisateur. Par exemple:

connexion: $ _SESSION ['user'] = some_user_id;

zone utilisateur: $ utilisateur = $ _SESSION ['utilisateur']; // extrait l'utilisateur de la base de données, basé sur la variable $ user // faire quelque chose

2

La session peut stocker toutes les informations que vous pourriez trouver utiles, donc la mise à l'information dépend de vous. Pour essayer certaines choses, essayez ce qui suit et voir par vous-même:

<?php 

    session_start(); 
    if(isset($_SESSION['foo'])) 
    { 
     echo 'I found something in the session: ' . $_SESSION['foo']; 
    } 
    else 
    { 
     echo 'I found nothing, but I will store it now.'; 
     $_SESSION['foo'] = 'This was a triumph.'; 
    } 

?> 

Appeler ce site la première fois doivent stocker les informations, stocker la deuxième fois l'imprimer.

Alors oui, vous pouvez mettre tout ce que vous voulez dans la session, par exemple un nom d'utilisateur. Cependant, gardez à l'esprit que la session disparaît dès que l'utilisateur ferme son navigateur.

Questions connexes