IE ne veut pas créer le cookie - PHP - Programmation
Marsh Posté le 27-08-2004 à 19:03:36
la page en question: http://stegri.free.fr/frame.htm
vous pouvez essayer avec ce compte
pseudo: cyril
mot de passe: azerty
ca marche avec mozilla mais pas avec internet explorer
Marsh Posté le 27-08-2004 à 20:46:22
sur www.phphdebutant.org il me semble qu'il te file la liste des paramètres qui peux poser pb avec IE pour les cookies... je ne rapelle plus par coeur mais dans ton cas il me semble que c'est le domaine...
Vire ton dernier paramètre et vois ce que ça donne
Code :
|
Marsh Posté le 28-08-2004 à 00:36:51
Je viens d'essayer et toujours le meme problème
Rien sur un problème de frame ici: http://phpdebutant.org/article40.php
Marsh Posté le 28-08-2004 à 13:53:02
Ca marche sous Opera, pas sous IE. Poste tes lignes de code setcookie...
PS : Par contre sous Opera j'ai des problème pour ajouter une balise G I S... mais bizarement pas avec les fonts & smileys.
Marsh Posté le 28-08-2004 à 16:27:04
comme indiqué au dessus c'est un bête
setcookie("$nom", "$value", $expire); que j'ai mis.
Marsh Posté le 29-08-2004 à 11:53:41
Il faut préciser qu'il ne faut pas de sortie html avant un setcookie
aussi, vu que ton forum est d'aceboard, faut peut etre spécifier aceboard.net en tant que domaine
Marsh Posté le 29-08-2004 à 12:36:33
ReplyMarsh Posté le 29-08-2004 à 12:37:04
spike a écrit : Il faut préciser qu'il ne faut pas de sortie html avant un setcookie |
Il n'y a pas pas de problème de html vu que je fais une bufferisation de sortie.
Marsh Posté le 12-09-2004 à 00:38:12
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();
?>
Marsh Posté le 27-08-2004 à 17:57:04
Hello,
J'essaie un cookie pour un site qui est dans une frame. Mozilla crée le cookie sans problème et IE ne veut pas le créer. Pourtant j'ai vu d'autres sites où il n'y a pas de problème donc jcomprends pas
En PHP ca donne:
setcookie("$nom", "$value", $expire, "/", "" );
j'imagine que le problème a qqchose à voir avec les deux dernièrs paramètres:
http://fr3.php.net/manual/en/function.setcookie.php
path The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain. If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
domain The domain that the cookie is available. To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the spec for details.
PS: pas de rapport avec un buffer, sans frame le cookie est crée.
Message édité par Limit le 27-08-2004 à 18:06:14