6
votes

Pourquoi session_start est nécessaire lors de l'utilisation de la session?

pourquoi je peux utiliser setcookie sans aucune préparation lors de la nécessité d'un session_start () avant d'utiliser $ _ session ? Et je pense que les travaux sont-ils semblable.


0 commentaires

4 Réponses :


12
votes

parce que Setcookie () définit un cookie à être Envoyé avec le reste des en-têtes HTTP . C'est une chose complètement différente de ce que session_start () fait, par ex. Création d'une session ou reprenant le courant en cours sur la base d'un identifiant de session transmis via une demande d'obtention ou de poste, ou passée via un cookie.

Le premier ajoute quelque chose à l'en-tête et l'envoie to le navigateur, tandis que l'autre obtient l'identifiant de la session de $ _Cookies ou $ _BET ou $ _POST, puis Travaille Trouver le fichier de session dans le session_save_path et lorsqu'il a été constaté non désérioriant les valeurs en $ _session et non, créez une nouvelle session, probablement à l'aide de Setcookie dans le processus pour définir l'ID de session.

Voir le Chapitre sur Sessions dans le manuel PHP.


edit comme @felix pointe correctement ci-dessous, la session n'est pas nécessairement enregistrée dans un fichier. Ce n'est pas si important, car l'argument reste le même: session_start trouvera et (re) initialisera vos données de session, tandis que setcookie fait simplement ce que le nom implique.


1 commentaires

Je l'ai eu.Merci pour les réponses de qualité.



1
votes

Pour expliquer, voir la réponse avant la mienne. Si vous ne voulez tout simplement pas appeler la fonction start_session (), consultez ce paramètre de PHP.ini: Session.Auto_Start


0 commentaires


0
votes

Les données de session ne sont pas nécessairement stockées dans un fichier comme le dit Gordon. Avec session_set_save_handler () Vous pouvez définir votre propre fin end qui devrait stocker les valeurs, par exemple. dans une base de données.

Tout cette récupération de données est traitée avec session_start () . De cette façon, vous pouvez facilement vous transformer en arrière sans casser votre application.

Remarque: il n'y a qu'une seule raison pour session_start () , et encore une fois, il suffit de définir des cookies.


0 commentaires