Php - validité d'un numéro de session
Ah_Kin
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Ah_Kin Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Ah_Kin Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Quelle est la fonction ou la méthode pour tester la validité d'un numéro de session stocké dans ma base sql?
Quelle est la fonction ou la méthode pour tester la validité d'un numéro de session stocké dans ma base sql?
A voir également:
- Php - validité d'un numéro de session
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Récupérer un numéro de téléphone effacé - Accueil - Android
- Impossible d'utiliser ce numéro de téléphone pour la validation. - Forum Gmail
- Numero imei - Guide
18 réponses
C'est pour la construction d'un site en php.
répondons à l'envers :
il est stocké pour différencier les enregistrements des utilisateurs inconnus dans ma base sql, chaque entrée contenant l'ip, le numéro de session, et le nick d'un utilisateur.
le numéro de session est accessible avec session_id()
répondons à l'envers :
il est stocké pour différencier les enregistrements des utilisateurs inconnus dans ma base sql, chaque entrée contenant l'ip, le numéro de session, et le nick d'un utilisateur.
le numéro de session est accessible avec session_id()
Salut.
Soit plus précis
Un numéro de session : comment attribues-tu ce numéro ?
Comment le reçois-tu une fois crée (variable GET, cookie...) ? Comment l'utilises-tu (ou est-il stocké, pourquoi...) ?
--
Sylvain
Soit plus précis
Un numéro de session : comment attribues-tu ce numéro ?
Comment le reçois-tu une fois crée (variable GET, cookie...) ? Comment l'utilises-tu (ou est-il stocké, pourquoi...) ?
--
Sylvain
tu veux que ton pragramme creer a chaque fois un nouveau numero de session? ou bien l'utilisateur le saisit?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La validité des numéros de session ?
Quand est-ce qu'un numéro est valide et quand est-ce qu'il ne l'est pas ?
Si il est valide quand il correspond à un membre inscrit, il suffit de voir si la personne est connectée ou pas avant d'enregistrer son ID de session.
--
Sylvain
Quand est-ce qu'un numéro est valide et quand est-ce qu'il ne l'est pas ?
Si il est valide quand il correspond à un membre inscrit, il suffit de voir si la personne est connectée ou pas avant d'enregistrer son ID de session.
--
Sylvain
// ajout d'une session
$session = session_id();
$reponse = mysql_query("SELECT * FROM en_ligne WHERE session = '$session'") or die(mysql_error());
$donnees = mysql_fetch_array($reponse);
$nick=$_SESSION['nick'];
if ($donnees['session'] != $session) // si visiteur nouveau
{
mysql_query("INSERT INTO en_ligne VALUES('$ip_courant','$nick','$session')") or die(mysql_error()); // Requête SQL
}
else
{
if ($nick!=$donnees['nick'])
{
mysql_query("UPDATE en_ligne SET nick='$nick' WHERE session='$session'");
}
}
// mise à jour des sessions
--> ...
c'est à la place des '...' que je veux tester la validité de chaque numéro de session contenu dans la table 'en_ligne'. si un numéro de session est invalide, la session serait effacée de la base.
$session = session_id();
$reponse = mysql_query("SELECT * FROM en_ligne WHERE session = '$session'") or die(mysql_error());
$donnees = mysql_fetch_array($reponse);
$nick=$_SESSION['nick'];
if ($donnees['session'] != $session) // si visiteur nouveau
{
mysql_query("INSERT INTO en_ligne VALUES('$ip_courant','$nick','$session')") or die(mysql_error()); // Requête SQL
}
else
{
if ($nick!=$donnees['nick'])
{
mysql_query("UPDATE en_ligne SET nick='$nick' WHERE session='$session'");
}
}
// mise à jour des sessions
--> ...
c'est à la place des '...' que je veux tester la validité de chaque numéro de session contenu dans la table 'en_ligne'. si un numéro de session est invalide, la session serait effacée de la base.
Si la personne n'est pas connectée, elle commence quand même une session mais avec un nick vide. C'est la raison pour laquelle je voulais traiter avec les numéros de session.
Sylvain - est-ce à dire qu'il faut que j'utilise plutôt une variable de session de plus, contenant par exemple l'id de l'enregistrement dans la base? Ce serait une idée un peu tirée par les cheveux à creuser si la réponse à ma question d'origine n'est pas trouvée.
Voilà donc la question reste sans réponse. Je reste à votre disposition pour toute info complémentaire sur ce topic bien qu'il me semble assez éclairci... Merci à toutes et à tous pour l'aide par avance.
Je n'ai pas tout suivi, mais si j'ai bien compris, il te suffit de faire pour les dernières lignes :
// mise à jour des sessions if($nick='')//si le psudo est vide (donc pas de session) mysql_query('DELETE FROM en_ligne WHERE session=\''."$session'")
Session anonyme ??
C'est à dire, un numéro de session vide .
Qu'est-ce qui est invalide alors ?
--
Sylvain
C'est à dire, un numéro de session vide .
Qu'est-ce qui est invalide alors ?
--
Sylvain
le numéro de session n'est pas vide.
C'est pas compliqué, le numéro de session d'un utiilisateur est généré automatiquement. Lorsque la session de celui ci, anonyme ou non, est finie, le numéro de la session n'est plus en vigueur. Or, il est toujours présent dans la base 'en_ligne'.
Je veux que la base soit mise à jour.
C'est pas compliqué, le numéro de session d'un utiilisateur est généré automatiquement. Lorsque la session de celui ci, anonyme ou non, est finie, le numéro de la session n'est plus en vigueur. Or, il est toujours présent dans la base 'en_ligne'.
Je veux que la base soit mise à jour.
Ah...
Mais tu ne peux pas savoir quand un internaute va fermer la fenêtre de ton site qu'il visite (à part avec JS).
Par contre, tu peux enregistrer l'heure de connexion, et supprimer toutes les entrées dans ta table dont la dernière connexion remonte à 5/10 minutes (le temps que tu estimes nécéssaire pour lire une page de ton site)
--
Sylvain
Mais tu ne peux pas savoir quand un internaute va fermer la fenêtre de ton site qu'il visite (à part avec JS).
Par contre, tu peux enregistrer l'heure de connexion, et supprimer toutes les entrées dans ta table dont la dernière connexion remonte à 5/10 minutes (le temps que tu estimes nécéssaire pour lire une page de ton site)
--
Sylvain
Pas à ma connaissance.
EDIT : regardes ceci pour une explication plus claire : http://www.commentcamarche.net/forum/affich 3921833#27
--
Sylvain
EDIT : regardes ceci pour une explication plus claire : http://www.commentcamarche.net/forum/affich 3921833#27
--
Sylvain
Bon la question n'étant pas soluble de sa précocité, il a fallu se résigner à utiliser javascript, comme tout le monde. Après moultes recherches, et trébuchements sur les incompatibilité d'humeurs php/javascript et IE/pop ups, j'en suis arrivé à une solution finale :
<body onbeforeunload="location.href='sessiondestroyer.php'">
'sessiondestroyer.php' contenant bien sûr notamment session.destroy().
cette ligne est dans un fichier 'vide.php' intéressant de par cette ligne et avec un body vide.
ce fichier est engendré par 'parent.php', vide lui aussi, dans un frame. (l'url à taper contenant désormais ce nom de fichier au lieu de 'ma_page.php'). 'parent.php' engendre aussi 'ma_page.php', celui sur lequel surfe l'utilisateur.
- aucune pop up n'est sollicitée lors de la destruction de la session donc IE laisse faire et firefox se fait pas de soucis.
- le rafraichissement ne fait que recréer la même session.
- la fermeture du navigateur et la sortie de 'parent.php' (donc du site de ma_page.php) détruit la session instantanément et sans ambiguïté (les fichiers correspondants sont effacés sur le serveur).
YAPLUKA
et donc pour chaque parsage, il ne reste plus qu'à mettre la base à jour en fonction de l'existence ou non des fichiers - dont le nom contient le numéro de session - dans le dossier réservé aux cookies de session. et pour les enregistrements EXISTANTS et au nick vides dans la base, boucle for, et on a le nombre de visiteurs inconnus.
... Mébon...
<body onbeforeunload="location.href='sessiondestroyer.php'">
'sessiondestroyer.php' contenant bien sûr notamment session.destroy().
cette ligne est dans un fichier 'vide.php' intéressant de par cette ligne et avec un body vide.
ce fichier est engendré par 'parent.php', vide lui aussi, dans un frame. (l'url à taper contenant désormais ce nom de fichier au lieu de 'ma_page.php'). 'parent.php' engendre aussi 'ma_page.php', celui sur lequel surfe l'utilisateur.
- aucune pop up n'est sollicitée lors de la destruction de la session donc IE laisse faire et firefox se fait pas de soucis.
- le rafraichissement ne fait que recréer la même session.
- la fermeture du navigateur et la sortie de 'parent.php' (donc du site de ma_page.php) détruit la session instantanément et sans ambiguïté (les fichiers correspondants sont effacés sur le serveur).
YAPLUKA
et donc pour chaque parsage, il ne reste plus qu'à mettre la base à jour en fonction de l'existence ou non des fichiers - dont le nom contient le numéro de session - dans le dossier réservé aux cookies de session. et pour les enregistrements EXISTANTS et au nick vides dans la base, boucle for, et on a le nombre de visiteurs inconnus.
... Mébon...