Bonsoir,
Il y a deux règles pour les cookies :
- La fct "setcooki()" doit être appélée avant d'envoyer le header de la page.
- Seul les deux premier parametre sont indispensables.
$cookie_name = "prenom";
$cookie_var = "julie";
$expire = time()+3600*24*30; // Cookie de 30 jours
setcookie ($cookie_name, $cookie_var, $expire);
(si on ne met pas le param "expire", il détruit le cookie par défaut dès qu'on ferme le browser).
Moi j'utilise ça sur IE 6 et ca marche très bien.
....
Jusqu'à ce que...
J'ai rajouté un 'include ("compteur_user.php" );' en debut de page et depuis il me dit ke mon cookie ne peut pas etre écrit parce qu'un header
à déjà été envoyé avec le fichier "compteur_user.php", or dedans il n'y a que des variables et quelques fonction.., mais aucun affichage.
Je ne comprend pas.
Contenu du fichier "compteur_user.php":
<?
require("conf.php" );
function get_ip()
{
if($_SERVER)
{
if($_SERVER['HTTP_X_FORWARDED_FOR'])
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif($_SERVER['HTTP_CLIENT_IP'])
$ip = $_SERVER['HTTP_CLIENT_IP'];
else
$ip = $_SERVER['REMOTE_ADDR'];
}
else
{
if(getenv('HTTP_X_FORWARDED_FOR'))
$ip = getenv('HTTP_X_FORWARDED_FOR');
elseif(getenv('HTTP_CLIENT_IP'))
$ip = getenv('HTTP_CLIENT_IP');
else
$ip = getenv( 'REMOTE_ADDR');
}
return $ip;
}
$client_id = get_ip();
$client_delay = 300;
$time = time();
mysql_select_db($sql_bdd, mysql_connect($sql_serveur, $sql_user, $sql_passwd));
if(!mysql_query("DELETE FROM clients WHERE client_time_request < $time - $client_delay" ))
// En cas d'échec, crée la table
mysql_query("CREATE table clients(client_id VARCHAR(64) NOT NULL, client_location VARCHAR(128) NOT NULL, client_time_request INT NOT NULL)" );
mysql_query("INSERT INTO clients VALUES('$client_id', '$REQUEST_URI', '$time')" );
$current_num_clients = mysql_num_rows(mysql_query("SELECT DISTINCT client_id FROM clients WHERE client_location = '$REQUEST_URI'" ));
$global_num_clients = mysql_num_rows(mysql_query("SELECT DISTINCT client_id FROM clients" ));
mysql_close();
?>