Questions sur les sessions

MasterGone Messages postés 8 Date d'inscription lundi 9 octobre 2000 Statut Membre Dernière intervention 4 janvier 2004 - 2 janv. 2004 à 11:51
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009 - 18 août 2004 à 17:04
Bonjour à tous,

Je ne suis qu'un débutant en PHP et j'ai 3 petites questions sur les sessions. Je viens de créer un petit script PHP qui via une bdd MySQL me compte les pages vues et le nombre de visiteurs sur le site (ce dernier via les fameuses sessions).

1) Le script marche parfaitement sur Free, mais pas en local avec EsayPHP où à chaque affichage de pages démarre une nouvelle session (ce qui a pour effet de me compter autant de pages vues que de visiteurs...).

2) Les cookies de sessions ne sont pas détruits automatiquement, j'aimerais savoir s'ils se détruisent tout seuls ou s'il faut les détruire soi-même.

3) Comment fermer une session lorsque l'utilisateur quitte mon site web ? (je connais le truc du onUnload avec la frame, mais je ne sais pas s'il y a mieux).

Voici le script PHP :


<?php

// Démarrage de la session
session_start();

if (isset($_SESSION["updateok"])==false):
$updateok=0;
session_register("updateok");
else:
$updateok=$_SESSION["updateok"];
endif;

// Récupère la date du jour
$date=date("Y-m-d");

// Récupère les paramètres de connexion
require("config.inc.php");

// Connexion à la base de données et sélection de la table
$db_connect=mysql_connect($host,$login,$password) or die ("Erreur lors de la connexion au serveur.");
$db_select=mysql_select_db($db_base,$db_connect) or die ("Erreur lors de la sélection de la base de données.");

// Sélctionne dans la bdd l'enregistrement du jour
$db_result=mysql_query("SELECT * FROM $db_table WHERE 'date'='$date'") or die ("Erreur lors de l'exécution d'une requête (1).");

// Crée l'enregistrement du jour s'il n'existe pas
if(mysql_num_rows($db_result)==0) {mysql_query("INSERT INTO $db_table(date,pages) VALUES('$date','0')");}

// Augmente le compteur des pages vues
mysql_query("UPDATE $db_table SET pages=pages+1 WHERE date='$date'") or die ("Erreur dans la requête avec l\\'erreur : ".mysql_error());

// Augmente le compte de visites
if ($updateok!=1) {
mysql_query("UPDATE $db_table SET visites=visites+1 WHERE date='$date'") or die ("Erreur dans la requête avec l\\'erreur : ".mysql_error());
    $updateok=1;
session_register("updateok");
}

// Ferme la connexion à la base de données
mysql_close($db_connect);

?>



Merci bien pour vos réponses et bonne année.

Loïc

2 réponses

magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
18 août 2004 à 17:01
PROCEDON PAR ORDRE :

Question 1 :
Verifie au niveau de ton controle de cookies de Internet Explorer c surement une securite

Question 2:
Un cookie ne se detruit pas, il expire, il s efface a la demande apres

Question 3: La fermeture du navigateur tue la session automatiquement ya rien besoin de fer. Sauf si tu utilise les cookie et non les sessions

Magidev

Pour un contact plus rapide
Ajoutez moi dans vos contacts MSN
Je suis souvent la - Merci

magidev@hotmail.com
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
18 août 2004 à 17:04
PROCEDON PAR ORDRE :

Question 1 :
Verifie au niveau de ton controle de cookies de Internet Explorer c surement une securite

Question 2:
Un cookie ne se detruit pas, il expire, il s efface a la demande apres

Question 3: La fermeture du navigateur tue la session automatiquement ya rien besoin de fer. Sauf si tu utilise les cookie et non les sessions

Magidev

Pour un contact plus rapide
Ajoutez moi dans vos contacts MSN
Je suis souvent la - Merci

magidev@hotmail.com
0
Rejoignez-nous