cs_jojodiane
Messages postés2Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention 1 juillet 2005
-
29 juin 2005 à 10:39
cs_jojodiane
Messages postés2Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention 1 juillet 2005
-
1 juil. 2005 à 08:14
Bon voila mon probleme:
Sur mon site j'utilise 2 cookies:
1 pour modifier son habillage 'style'
1 pour l'espace membre "gateau1".
Quand je n'utilise qu'un seul d'entre eux ça fonctionne.
Quand je le "joints" ensemble les cookies ne sont plus gérés!
Je ne sais pas quoi faire....
Voici le code complet...
<?php
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
if(file_exists("./".$_POST['style']."/style.css"))
{
// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite
setcookie('style', $_POST['style'], time()+(365*24*3600)) ;
// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
$css = $_POST['style'] ;
}
}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
$css = $_COOKIE['style'] ;
}
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
$css = "couleur/bleue" ;
}
# Copyright (C) 2003 (Grandzebu)
# Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous). Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails.
$variables = array("action","gateau1","email","pass", "mail");
foreach($_REQUEST as $key => $val) if (in_array($key, $variables)) ${$key} = $val;
require("config.esm.php");
$onloadscript = "";
$droits = 0; //0 : visiteur, 1-99 : membres de différents niveaux, 100 : webmestre
$vrainom = "";
$vraiprenom = "";
$nomcomplet = "";
if (! isset ($action)) $action = "";
#Types d'action: Résiliation, Logoff, Oubli, RAfresh
if ($action == "R") {
$tableau = unserialize(urldecode($gateau1));
$email = $tableau[0];
if ($RESILIATION) { $query "SELECT * FROM membres WHERE email '$email'";
$rid = mysql_query($query, $mid) or DieInfo("Recherche d'un membre impossible", __FILE__, __LINE__);
$r = mysql_fetch_array($rid); $query "DELETE FROM membres WHERE email '$email'";
$rid = mysql_query($query, $mid) or DieInfo("Suppression d'un membre impossible", __FILE__, __LINE__);
Destructor($r["id"]);
$onloadscript = "alert('Votre compte a été supprimé.');";
} else { $query "UPDATE membres SET droits '-1' WHERE email = '$email'";
$rid = mysql_query($query, $mid) or DieInfo("Mise à jour d'un membre impossible", __FILE__, __LINE__);
EnvoiMail("R", $URL_WEBMESTRE, $email, "");
$onloadscript = "alert('Votre compte est désactivé. Un émail est envoyé au webmestre pour lui demander une suppression totale.');";
}
$action = "L";
$email = "";
}
if ($action == "O") {
if (! isset($mail)) $mail ="";
if (GetMembre($mail)) {
$droits = 0;
EnvoiMail("O", $mail, $password, "");
$onloadscript = "alert('Votre mot de passe vous est envoyé par émail à l\'adresse : $mail');";
} else {
$onloadscript = "alert('L\'adresse : $mail ne correspond pas à un membre.');";
}
}
if ($action == "L") {
#On détruit le cookie
SetCookie("gateau1");
unset($gateau1);
unset($email);
}
if (isset($gateau1) && strlen($gateau1) > 0) {
#On a un cookie à vérifier
$tableau = unserialize(urldecode($gateau1));
$email = $tableau[0];
$pass = $tableau[1];
}
if (isset($email)) {
#email est initialisé soit par le cookie, soit au retour du formulaire d'identification
if (GetMembre($email)) {
if ($pass == $password) {
$nomcomplet = $vraiprenom . " " . $vrainom;
if ($nbessais <> 0) SetNombreEssais(0, $email);
if ($dateacces <> $cejour) { $query "UPDATE membres SET dernieracces '$cejour' WHERE email = '$email'";
$rid = mysql_query($query, $mid) or DieInfo("Mise à jour d'un membre impossible", __FILE__, __LINE__);
}
} else {
$onloadscript = "alert('Le mot de passse ne convient pas.');";
$droits = 0;
SetCookie("gateau1");
if ($nbessais == 2) {
Toaster($email);
$onloadscript = "alert('Suite à 3 erreurs, votre mot de passse a été grillé. Un nouveau mot de passe va vous être envoyé par émail.');";
} else {
SetNombreEssais($nbessais + 1, $email);
}
}
} else {
$onloadscript = "alert('L\'adresse : $email ne correspond pas à un membre.');";
$email = "";
SetCookie("gateau1");
}
}
if ($droits > 0) {
#On a des droits, donc on plante un cookie
SetCookie("gateau1",urlencode(serialize(array($email, $pass))), time() + $dureeducookie);
} else {
if (! isset($email)) $email = "";
if ($email == "") {
$onloadscript = "document.identification.email.focus();" . $onloadscript;
} else {
$onloadscript = "document.identification.pass.focus();" . $onloadscript;
}
}if ($onloadscript !"") $onloadscript "javascript:" . $onloadscript;
if ($RESILIATION) {
$msgresiliation = "Votre demande de résiliation va être prise en compte immédiatement.";
} else {
$msgresiliation = "Votre compte sera désactivé et une demande de résiliation sera envoyée au webmestre.";
}
if ($INIT_DROITS == 0) {
$msgresiliation = $msgresiliation . " Une nouvelle inscription nécessitera un délai de validation.";
} else {
$msgresiliation = $msgresiliation . " Vous pourrez vous ré-inscrire sans délai.";
}
?>
marcel_boulette
Messages postés21Date d'inscriptionlundi 14 février 2005StatutMembreDernière intervention26 septembre 2005 29 juin 2005 à 15:22
Est- ce que ça serait pas un problème de register_global à ON. Au début de ton script tu as un formulaire avec des $_POST qui ont les mêmes nom que des $_COOKIE. En principe ça marche, mais je suis déjà resté bloqué longtemps sur un truc de merde comme ça.
cs_jojodiane
Messages postés2Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention 1 juillet 2005 1 juil. 2005 à 08:14
Je ne comprends pas ou ne vois pas les noms identiques....
L'erreur, quand j'essai d'utiliser un cookie, que j'ai est:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/d/0/rjorro/essai/menu.php:3) in /var/www/free.fr/d/0/rjorro/essai/menu.php on line 11 <LINK media=screen href="couleur/rose/style.css" type=text/css rel=stylesheet>
J'ai testé de changer 'style' par 'bidule' le résultat est le même...