MasterGone
Messages postés8Date d'inscriptionlundi 9 octobre 2000StatutMembreDernière intervention 4 janvier 2004
-
2 janv. 2004 à 11:51
magidev
Messages postés249Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention28 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);
?>