Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/05/2006, 19h41   #1
Membre habitué
 
Avatar de H-bil
 
Inscription : février 2006
Messages : 337
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 337
Points : 100
Points : 100
Par défaut Gestion d'un site d'annonces (connectés, affichage des catégories)

salut
je suis entrain de realiser un site des annonces et je demande votre aide.

l'utilisateur peut choisir une ville pour chaque annonce alors j'ai fais une table ville qui contient les champs id_ville, nom_ville, cp. et dans la table annonce j'ai ajouter le champ id_ville .
est ce que c'est une bonne metode ??

la bdd contient les tables :categorie et sous_categorie ....
je veux afficher la liste des categorie et sous_categorie ainsi que le nombre de connecté dans chaqcune pour cela j'ai fait une table connecte(id_membre, d_categorie, id_sous_categorie), et grace a une variable session qui contient id_categorie et une autre qui contient id_sous_categorie et qu'elles vont etre ajouter a la table connecte je peux connaitre sur quelle categorie et sous_categorie l'utilisateure navigue.
voici mon problème
si l'utilisateur se deconnecte son enregistrement va etre retiré de la table connecte. mais s'il ferme le navigateur, comment detruire la session et suprimer l'enregistrement de la table connecte.

merci et @+
H-bil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 00h08   #2
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Citation:
Envoyé par H-bil
l'utilisateur peut choisir une ville pour chaque annonce alors j'ai fais une table ville qui contient les champs id_ville, nom_ville, cp. et dans la table annonce j'ai ajouter le champ id_ville .
est ce que c'est une bonne metode ??
Salut.
Si je comprend bien, une ville est identifiée de manière unique par un id_ville. Il existe une relation entre ville et annonce de type 1-->n
* 1 annonce correspond à une et une seule ville,
* 1 ville donnée peut "disposer" de plusieurs annonces.
Dans ce cas, la méthode que tu utilises est une solution répondant au problème : le champ id_ville de la table annonce est une clé étrangère.
Ca veut dire par exemple que si tu supprimes une ville de ton système, il faudra supprimer les annonces correspondant à cette ville.

Citation:
Envoyé par H-bil
voici mon problème
si l'utilisateur se deconnecte son enregistrement va etre retiré de la table connecte. mais s'il ferme le navigateur, comment detruire la session et suprimer l'enregistrement de la table connecte.
C'est un problème fréquent ! En effet, si l'utilisateur ferme sa fenêtre, le serveur ne le sait pas et ne peut pas mettre à jour la BD.
Dans ce cas, on utilise un timeout (un délai) au delà duquel on efface la session.
Par exemple, sur la page où tu affiches tes informations, tu vérifie d'abord toutes les sessions qui n'ont pas ue d'activité depuis un certain temps (timeout=10 minutes, 1 heure, etc ... à choisir) et tu les effaces de ta table connecte.

Voilà, désolé pour la longueur.
J'espère que j'ai répondu à tes questions.
a+
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 00h17   #3
Membre habitué
 
Avatar de H-bil
 
Inscription : février 2006
Messages : 337
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 337
Points : 100
Points : 100
merci
=>pouvez-vous me dire coment sa marche le timeout() ou me donner un lien vers un tuto
=>comment chercher les session inactives ??
@+
H-bil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 01h42   #4
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Salut,
en fait, il existe 2 type de timeout :

1) Le timeout du serveur web, que tu ne peux en général pas changer si tu es hébergé en mutualisé (voir http://php.developpez.com/faq/?page=...sions_dureevie pour plus de détails)

2) Un timeout "maison" dont je parlais dans mon message précédent.
Tu nous dit que tu as une table connecte, qui contient pour un utilisateur donné la catégorie qu'il est en train de visualiser. C'est une information que tu mets à jour à chaque fois qu'il change de catégorie (j'imagine).
Il te suffit alors de stocker également la date et l'heure de l'action.
Quelque chose comme : le 15/05/2006 à 13h32, l'user n°35 à visualisé la catégorie n°541.
Et avant d'afficher tes statistiques (23 utilisateurs parcourent actuellement la catégorie "Bidule"), tu effaces les données de la table connecte qui qu'ont pas eu d'action depuis un certain temps (timeout).

Citation:
Exemple : tu choisis un timeout de 10 minutes.
Un utilisateur X se connecte à 13h40 sur ton site, il verra 1 personne dans la catégorie n°35.
Un utilisateur Y se connecte à 13h43 sur ton site, il ne verra personne dans la catégorie n°35 parce que la visualisation de la page à cette heure aura effacé toutes les données antérieures à 13h33.
J'espère avoir été clair.
a+
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 01h55   #5
Membre habitué
 
Avatar de H-bil
 
Inscription : février 2006
Messages : 337
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 337
Points : 100
Points : 100
Merci c'est un ptit peu clair,
je vais continuer la recherche sur ce theme surtout le timeout
H-bil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h47.


 
 
 
 
Partenaires

Hébergement Web