Pb session php/mysql [Résolu]

Signaler
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007
-
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
-
Yop !

Voilà j'ai 2 petites questions urgentes. Vous serez super cool de bien répondre à mes questions !! :)



C'est au niveau des sessions php avec base de donnée MySQL.



Je dois mettre en place un système de session pour créer une option de panier achat sur mon site.

Si sur ma page Web de début je marque (avant le <head> html)
start_session(), tous les utilisateurs qui se connectent sur ma page
pourront avoir un numéro de session différent et unique à leur première
connexion. Mais par contre lorsqu'un utilisateur quitte ma page Web et
qu'il se reconnecte ensuite est-ce qu'un nouveau id_session lui est
attribué ou est ce que la reconnaissance de l'utilisateur est
automatique au quel cas le id_session ne change pas?



La fonction session_destroy() est-elle obligatoire? Est-ce que toutes
les informations dans MySQL qui sont rattachées à un id_session sont
détruites, (cad suppression de toutes les informatiosn relatives à
toutes les tables qui reprennent en clé étrangère id_session)?



Où faut il placer la fonction session_destroy() sachant qu'à tous moments un utilisateur peut fermer son explorateur.



Merci d'avance les gars. Toutes réponses sont bienvenues!!



JO

7 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



"Mais par contre lorsqu'un utilisateur quitte ma page Web et qu'il se
reconnecte ensuite est-ce qu'un nouveau id_session lui est attribué ou
est ce que la reconnaissance de l'utilisateur est automatique au quel
cas le id_session ne change pas?"



ça dépend si le cookie de session sur le pc de l'utilitateur est encore
sur le navigateur et ça dépend du session.max_lifetime dans le php.ini


"Mais par contre lorsqu'un utilisateur quitte ma page Web et qu'il se
reconnecte ensuite est-ce qu'un nouveau id_session lui est attribué ou
est ce que la reconnaissance de l'utilisateur est automatique au quel
cas le id_session ne change pas?"



Cf ma réponse ci dessus



"La fonction session_destroy() est-elle obligatoire?"



Non



"Est-ce que toutes
les informations dans MySQL qui sont rattachées à un id_session sont
détruites, (cad suppression de toutes les informatiosn relatives à
toutes les tables qui reprennent en clé étrangère id_session)?"



Y'a aucune info stockée dans MySQL quand tu utilises les sessions, sauf
si c'est ton propre système de session utilisant mysql, mais pas celui
de PHP.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Il existe un paramètre : session_life_time() je crois si mes souvenirs
sont bons qui défini le temps d'un timeout d'une session utilisateur.
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

Ok merci, donc pour gérer les sessions pour mon panier achat, je place juste mon start_session() au dessus du header html sur LA première page et tant que le gars est sur ma page il aura le même id_session et les scripts php et requete mysql lui seront propres?
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

Pour un système de panier achat, lorsqu'un client achète un article sur mon site par exemple il faut que ma base de donnée soit modifiée en fonction du nombre d'aritcles vendus et ajoute le nom de l'acheteur etc. Il faut donc que j'intègre un identifiant de session unique dans ma base mysql. Est-ce exact ?
Si c'est exact est-ce que je peux utiliser la fonction start_session() de php qui attribue un id_session unique à toutes les personnes se connectant sur mon site avec ma base mysql? Cela revient à écrire dans ma base l'id_session unique généré par php et qui identifie un client unique. Je peux l'effacer ensuite dans ma base à un instant t.

Merci de vos réponses j'espère que je pourrai en accepter plein !! ;-)

JO
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
« les scripts php et requete mysql lui seront propres? »
Pour moi, les sessions c'est simplement pour mémoriser des variables tout au long du parcours du visiteur sur ton site, mais c'est indépendant d'une quelconque base de données...

Arn;o)
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

oui donc est-ce bqu'on peut faire comme j'ai dit plus haut :

"Pour un système de panier achat, lorsqu'un client achète un article sur mon site par exemple il faut que ma base de donnée soit modifiée en fonction du nombre d'aritcles vendus et ajoute le nom de l'acheteur etc. Il faut donc que j'intègre un identifiant de session unique dans ma base mysql. Est-ce exact ?
Si c'est exact est-ce que je peux utiliser la fonction start_session() de php qui attribue un id_session unique à toutes les personnes se connectant sur mon site avec ma base mysql? Cela revient à écrire dans ma base l'id_session unique généré par php et qui identifie un client unique. Je peux l'effacer ensuite dans ma base à un instant t.

Merci de vos réponses j'espère que je pourrai en accepter plein !! ;-)

JO"
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Je suis désolé, je ne comprends pas très bien...
En tout cas, tu peux tout à fait enregistrer dans une table les identifiants de session, en revanche, je ne vois pas très bien l'intérêt...
Si tu veux distinguer chaque client, ne faudrait-il pas mieux que tu utilises des logins ?