Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/03/2007, 12h00   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 3
Points : 3
Par défaut [Cookies] Style Switcher

Hello,
je travaille sur une nouvelle version de mon site web (http://ugcbb.free.fr), dans laquelle je veux intégrer un style switcher (ou sélecteur de style)...
ma page de test se trouve ici : http://ugcbb.free.fr/ugcbb3/pages/futurindex.php
Code :
1
2
3
4
5
6
7
8
<head>
<title>Union Gouvieux-Chantilly Basket-Ball</title>
<link href="http://ugcbb.free.fr/
<?php echo (!$ugcbbfreefr_stylecss)?'style1':$ugcbbfreefr_stylecss ?>
.css" rel="stylesheet" type="text/css" media="screen" title="mon choix de style d'affichage" />
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<div id=style>Changement de style
	  <form method="post" action="http://ugcbb.free.fr/selecteurstyle.php">
		<label for="selectiondustyle">
           <select name="nouveau" id="selectiondustyle">
               <option value="style1">style bleu </option>
               <option value="style2">vert gouvieux</option>
 
 
           </select>
</label>
<input type="submit" value="Choisir ce style" />
</form>
</div>

J'ai créé une page de création de cookies, selecteurstyle.php, située à la racine du site, code =
Code :
1
2
3
4
5
6
7
8
9
<?php
setcookie ('ugcbbfreefr_stylecss', //nom du cookie
$nouveau, //valeur du cookie
time() + 31536000, //durée de vie (31 536 000 secondes = une année)
'/', //répertoire de validité par rapport à la racine
'http://ugcbb.free.fr', //nom de domaine COMPLET dont sous-domaine
'0'); // 0 = pas sécurisé
header("Location: ".$_SERVER['HTTP_REFERER']);  // retour à la page précédente
?>
Mes feuilles de style "style1.css" et "style2.css" se trouvent également à la racine du site.

Mon code reconnaît mon style1.css comme le style par défaut mais lorsque je test mon switcher pour passer en style2 ça ne marche pas ! help please...
PIMPMAX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 12h10   #2
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
A mon avis c'est un problème de rafraichissement le css est gardé en cache et c'est assez problématique.
Il y a peut etre une solution pour forcer le vidage du cache du navigateur en php ou javascript mais je ne le connais pas.
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 12h51   #3
Invité de passage
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 3
Points : 3
Donc personne ici ne sait faire de style switcher ?

j'ai l'impression qu'il manque, dans la page de cookies, le code du type if isset $cookie.....else....

mais je ne connais pas ce code.
please help me les gens
PIMPMAX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 13h18   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Avez-vous essayé de remplacer :
Code :
<?php echo (!$ugcbbfreefr_stylecss)?'style1':$ugcbbfreefr_stylecss ?>
Par :
Code :
<?php echo (isset($_COOKIE['ugcbbfreefr_stylecss']) && !empty($_COOKIE['ugcbbfreefr_stylecss']) ? $_COOKIE['ugcbbfreefr_stylecss'] : 'style1'); ?>
?


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 14h34   #5
Invité de passage
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 3
Points : 3
Oui et voici ma nouvelle ligne de code dans Head / head (page futurindex.php)

Code :
<link href="http://ugcbb.free.fr/<?php echo (isset($_COOKIE['ugcbbfreefr_stylecss']) && !empty($_COOKIE['ugcbbfreefr_stylecss']) ? $_COOKIE['ugcbbfreefr_stylecss'] : 'style1'); ?>.css" rel="stylesheet" type="text/css" media="screen" title="mon choix de style d'affichage" />
mais rien n'y fait, lorsque j'ouvre la page futurindex.php, le style 1 est bien appelée, et lorsque je souhaite appeler style2.css rien ne change...le problème ne viendrait-t-il pas de ma page selecteurstyle.php?

merci
PIMPMAX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 14h54   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Probablement, il y a encore un problème lié au register_globals on : dans selecteurstyle.php il faut remplacer aussi $nouveau par $_POST['nouveau'].

J'espère qu'il n'en reste plus après


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 15h07   #7
Invité de passage
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 3
Points : 3
merci Julp mais rien a faire ça marche pas.

est-ce que de ton côté quand tu test ma page ça marche ?

y'a pas des "if" et "else" à mettre dans ma ligne d'appel de la feuille ?
PIMPMAX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 15h46   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par PIMPMAX
est-ce que de ton côté quand tu test ma page ça marche ?
Maintenant, oui : j'ai juste mis toute cette partie sur une seule ligne :
Code :
<link href="<?php echo (isset($_COOKIE['ugcbbfreefr_stylecss']) && !empty($_COOKIE['ugcbbfreefr_stylecss']) ? $_COOKIE['ugcbbfreefr_stylecss'] : 'style1'); ?>.css" rel="stylesheet" type="text/css" media="screen" title="mon choix de style d'affichage" />
Et j'ai viré les paramètres de la fonction setcookie situé après celui qui fixe l'expiration qui ne sont pas utiles dans votre cas puisque ça revient à fixer les valeurs par défaut si je ne m'abuse.

PS : un contrôle avant de faire le setcookie serait peut être plus sûr.


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 16h05   #9
Invité de passage
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 3
Points : 3
Donc en résumé....on a


ligne d'appel de feuille de style:

Code :
<link href="<?php echo (isset($_COOKIE['ugcbbfreefr_stylecss']) && !empty($_COOKIE['ugcbbfreefr_stylecss']) ? $_COOKIE['ugcbbfreefr_stylecss'] : 'style1'); ?>.css" rel="stylesheet" type="text/css" media="screen" title="mon choix de style d'affichage" />
et selecteurstyle.php devient :

Code :
1
2
3
4
5
6
7
<?php
setcookie ('ugcbbfreefr_stylecss', //nom du cookie
$_POST['nouveau'], //valeur du cookie
time() + 31536000, //durée de vie (31 536 000 secondes = une année)
)
header("Location: ".$_SERVER['HTTP_REFERER']);  // retour à la page précédente
?>
c'est bien ça ?
cette fois-ci mon CSS par défaut n'est plus appelé et le switcher ne marche pas non plus
PIMPMAX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 16h20   #10
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Relisez-vous ! Sur une instruction vous faîtes deux erreurs :
Code :
1
2
3
4
setcookie ('ugcbbfreefr_stylecss', //nom du cookie
$_POST['nouveau'], //valeur du cookie
time() + 31536000pas de virgule //durée de vie (31 536 000 secondes = une année)
);

Cordialement, Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 16h29   #11
Invité de passage
 
Inscription : janvier 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 23
Points : 3
Points : 3


OK Julp, désolé pour ces erreurs...effectivement j'ai corrigé mon fichier selecteurstyle.php et......ça marche , enfin !

Merci Julp pour votre aide et votre patience.

A+
PIMPMAX est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h46.


 
 
 
 
Partenaires

Hébergement Web