11
votes

Qu'est-ce que session_id, session_regenee_id et session_name utilisée?

OK im un débutant sur des sessions permet d'imaginer que nous avons un peu de site de connexion,

Heres une logique

  1. Connexion
  2. Si mot de passe droit = ​​utiliser $ _Session [Isaloginuer] = 1
  3. Vérifiez la session pour voir les menus avec si $ _Session [Isaloginuer] = 1
  4. montrer les menus
  5. L'utilisateur veut se connecter
  6. Séance non définie
  7. détruire le système de session

    ce qu'il utilise xxx

    où est le session_id & the session_regeneer ou ou ou ou session_name va dans? sur le site PHP, il dit

    session_id () est utilisé pour obtenir ou définir le ID de session pour la session en cours.

    Je ne comprends toujours pas, pourquoi avons-nous besoin d'eux quand même? dans environnement réel qu'est-ce que cela fait?


3 commentaires

Non seulement mot de passe, mais assurez-vous que le nom d'utilisateur est également juste :)


Toujours utiliser session_regenèrent_id lorsque le niveau de privilège change


Ce lien A deux réponses géniales sur les sessions.


5 Réponses :


15
votes

Non, vous n'avez pas besoin de les utiliser. En général, tout ce dont vous avez besoin est

  • session_start pour démarrer la manipulation de la session et
  • session_destroy pour détruire les données de session stockées (cela ne modifie pas $ _Session ), et
  • session_unset pour réinitialiser la section _ Session variable ( Mais vous pouvez également faire $ _ session = tableau () ).

    session_id et session_name doit obtenir et définir le nom de la session de session actuelle (par défaut est phpsessid ). session_regenèrent_id peut être utilisé pour régénérer / modifier l'ID de session de la session en cours. Cela pourrait être utile si, par exemple, vous souhaitez actualiser l'ID de session toutes les 10 minutes ou après avoir changé l'état d'authenticité d'un utilisateur associé à une session.


3 commentaires

Ok, mais que fait-il dans le monde réel? utilisez-vous sur l'un de votre projet? pour quelle raison ?


@Adam Ramadhan: Qu'est-ce que ce fait dans le monde réel?


session_id, nom et régénérer.



2
votes

Les identifiants de session sont l'identifiant de la session. La façon dont un serveur stocke des données sur un client est dans un cookie. Ce cookie est envoyé avec chaque demande HTTP au serveur par ce client. PHP définit un cookie pour être un jeton à cordes aléatoires. Ce jeton identifie le client et le concerne à un ensemble de paires de clés. L'idée d'une variable de session est que les cookies peuvent être facilement altérées. Les identifiants de session, cependant, étant des chaînes aléatoires, sont difficiles à dupliquer et d'ajouter ainsi une sécurité.


0 commentaires

3
votes

session_register () est amorti en 5.3, je suggérerais de l'utiliser. Au lieu de cela, utilisez simplement

$_SESSION['varname'] = "value";


0 commentaires

2
votes

J'utilise habituellement session_id () lors de la création de paniers de magasinage afin que je puisse suivre ce que cet utilisateur a ajouté, une fois que j'ai une réponse à la passerelle de paiement que le paiement a réussi, je suis alors session_regeneerate () afin que ce soit De retour sur mon site Web, leurs paniers précédents ne sont pas visibles et pour moi, c'est comme un nouvel utilisateur a «entré» le magasin.


1 commentaires

$ _ Session ['Panier'] = NULL ne ferait pas?



10
votes

session_regenèrent_id () est utilisé afin d'empêcher la fixation de la session.

La fixation de la session signifie ce qui suit: Vous visitez un site Web et examinez votre identifiant de session. Ensuite, vous manipulez un autre utilisateur à visiter le site à l'aide de votre identifiant de session et de vous connecter. Maintenant, vous êtes connecté à cet utilisateur et que vous avez ses privilèges, car vous utilisez la même session.

Pour éviter cela, donnez à l'utilisateur un nouvel identifiant de session à l'aide de session_regenèrent_id () quand il se connecte avec succès. Il suffit maintenant de son identifiant de session et de votre ancien identifiant de session n'est plus valide. < / p>


4 commentaires

Devrions-nous l'ajouter à la connexion? ou en déconnexion?


Il est important de le faire à la connexion. Je ne pense pas qu'il soit nécessaire de le faire lors de la déconnexion, même si ce n'est pas une opération coûteuse.


@Hamérable bon exemple, mais chaque utilisateur rafraîchit la page, le session_regenèrent_id () génère de nouveaux ensembles de sessions, donc cela n'affecte pas la session de toute façon?


session_regenerèrent_id () laissera une piste de fichiers de session active sur le serveur. session_regenerèrent_id (true) remplacera l'ancien fichier de session nouveau.