Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
773 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu]Changement de style, cookie, path

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Changement de style, cookie, path

n°1051936
yoyo354
Yoyo, le roi du ...
Posté le 19-04-2005 à 11:20:32  profilanswer
 

Bonjour à tous,  
 
Je viens de créer quelques lignes de codes permettant aux visiteurs de mon site de chosir leurs feuilles de style parmis celles que j'ai créer.
 
Voici donc ces quelques lignes :  

Code :
  1. if (isset($_GET['style'])) {
  2. /* Je regarde d'abord si on à changé le style */
  3. setcookie ('style', '',time()-86400);
  4. /*comme c'est la cas, j'éfface le cookies si il y en a un */
  5. setcookie('style', $_GET['style'],1147483647);
  6. /*Je mets le cookies avec la valeur de la feuille de style*/
  7. $fstyle = $_GET['style'];
  8. /*J'assigne la valeur du style à la variable $fstyle qui me servira dans pour la suite
  9. $chaine=str_replace("style", "ok", $REQUEST_URI);  
  10. header("Refresh: 1;".$chaine);*/
  11. }
  12. if (isset($_COOKIE['style'])) {
  13. /*Dans ce cas, la personne n'a pas changer de style donc j'éssaye de récuperer la valeur du cookies*/
  14. $fstyle = $_COOKIE['style'];
  15. }
  16. if (!isset($_GET['style']) && !isset($_COOKIE['style'])) {
  17. /*Dans ce cas, la personne n'a pas changé de style et n'a pas de valeur dans ces cookies*/
  18. $fstyle = "noir";
  19. }


et voici le code mon formulaire :  

Code :
  1. <form action="/?style=change" method="get" id="style">
  2.     <p><label for="styles">Choisir un style :</label>
  3.     <select id="styles" name="style">
  4.      <option value="rouge">rouge</option>
  5.      <option value="rien">rien</option>
  6.      <option value="noir">noir</option>
  7.     </select>
  8.     <input type="submit" value="Ok" /> Appuyer ensuite sur la touche F5
  9.    </p></form>


 
Pour en arriver au problème suivant :  
Lorsque je change de style, le changement ne s'applique pas immédiatement. L'utilisateur est obligé d'actualiser la page. Comment y remédier ? J'ai essayer avec header() refresh, mais ça  déconne avec IE...
 
Merci d'avance.


Message édité par yoyo354 le 22-04-2005 à 18:11:11

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
mood
Publicité
Posté le 19-04-2005 à 11:20:32  profilanswer
 

n°1052140
yoyo354
Yoyo, le roi du ...
Posté le 19-04-2005 à 13:59:27  profilanswer
 

Faudrait-t-il mieux éssayeravec un POST plutôt qu'un GET ?


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1052146
skeye
Posté le 19-04-2005 à 14:01:33  profilanswer
 

http://www.nexen.net/docs/php/anno [...] cookie.php
 

Citation :

Erreurs communes :
 
    * Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire. Le délai d'expiration est défini en utilisant le paramètre expire . Une façon simple de vérifier le positionnement du cookie est d'utiliser print_r($_COOKIE); .


 
Lis un peu la doc quand tu as des comportements étranges...


---------------
Can't buy what I want because it's free -
n°1052158
yoyo354
Yoyo, le roi du ...
Posté le 19-04-2005 à 14:08:34  profilanswer
 

Merci, ça m'apprendra à regarder plus souvent la doc et à lacher de temps en temps mes bouqins...  
 
Cependant, je réitère ma demande...


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1052171
soju
One shot !
Posté le 19-04-2005 à 14:12:09  profilanswer
 

+1 skeye
et il manque des else pour eviter ce genre de problème, un exemple un peu plus propre :

Code :
  1. if (isset($_GET['style']))
  2. {
  3. $fstyle = $_GET['style']; // attention aux pbs de securité
  4. setcookie('style', $fstyle, time()+3600); // 3600 est juste un exemple
  5. }
  6. else if (isset($_COOKIE['style']))
  7. {
  8. $fstyle = $_COOKIE['style']; // attention aux pbs de securité
  9. }
  10. else
  11. {
  12. $fstyle = "noir"; // style par défaut
  13. }

n°1052177
yakob59
Posté le 19-04-2005 à 14:14:45  profilanswer
 

Salut !  
Voici un bout de code que j'ai écrit que est semblable au tien. Moi j'utilise les feuilles de style pour changer de résolution, mais le principe reste le meme.
 
if (isset($ChangeResolution)) {
 setcookie("resolution",$ChangeResolution,time()+(60*60*24*15));
 $resolution=$ChangeResolution;
} elseif ( $resolution=="" ) {
 setcookie("resolution","800",time()+(60*60*24*15));
 $resolution=800;
} else {
 setcookie("resolution",$resolution,time()+(60*60*24*15));
}
?>
 
et voici le formulaire:
 
<form name="resolution" method="post" action="Index.php">
R&eacute;solution: <br>
<input type="radio" name="ChangeResolution" value="800" <? if ($resolution=="800" ) echo "checked" ?> >
            800*600<br>
<input type="radio" name="ChangeResolution" value="1024" <? if ($resolution=="1024" ) echo "checked" ?> >
1024*768
<br>
<input type="submit" name="Submit" value="Changer">
         </form>

n°1052201
yoyo354
Yoyo, le roi du ...
Posté le 19-04-2005 à 14:22:15  profilanswer
 

Merci.  
Le résulat est très bien. Il ne me reste plus qu'à régler le problème du formulaire qui me renvoie à l'index du site, mais c'est un autre post...
 
EDIT : Il n'y aura point lieu d'ourvir un nouveau post... J'ai utilisé POST comme yakob59 et $SERVER[REQUEST_URI] pour l'action= du formulaire qui lui même se voit ajouté if ($fstyle == $enCours) { print " selected=\"selected\""; }...  
 
De nouveau merci pour vos réponses.


Message édité par yoyo354 le 19-04-2005 à 14:39:02

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1053837
yoyo354
Yoyo, le roi du ...
Posté le 20-04-2005 à 16:43:05  profilanswer
 

Trop beau pour être vrai...
 
ça ne fonctionne plus.... Je remet donc mon code en éspérant qu'une bonne âme trouve se qui cloche...
 
Le formulaire :  

Code :
  1. <form action="" method="post" id="style">
  2.     <p><label for="styles">Choisir un style :</label>
  3.     <select id="styles" name="style">
  4.      <option value="rouge">rouge</option>
  5.      <option value="rien">rien</option>
  6.      <option value="noir" selected="selected">noir</option>
  7.     </select>
  8.     <input type="submit" value="Ok" />
  9.    </p></form>


 
Le code php :

Code :
  1. if (isset($_POST[style])){
  2.   setcookie('style', $_POST[style], time()+131400); // 3600 est juste un exemple
  3.   $fstyle = $_POST[style]; // attention aux pbs de securité
  4. } elseif (isset($_COOKIE[style])) {
  5.   $fstyle = $_COOKIE[style]; // attention aux pbs de securité
  6. else {
  7.   setcookie('style', 'noir', time()+131400);
  8.   $fstyle = "noir"; // style par défaut
  9. }



---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1053863
skeye
Posté le 20-04-2005 à 16:49:04  profilanswer
 

Il te manque les '
=> $_POST['style'], $_COOKIE['style']


Message édité par skeye le 20-04-2005 à 16:49:36

---------------
Can't buy what I want because it's free -
n°1053883
yoyo354
Yoyo, le roi du ...
Posté le 20-04-2005 à 16:52:58  profilanswer
 

[:atog] Merci


Message édité par yoyo354 le 20-04-2005 à 16:54:59

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
mood
Publicité
Posté le 20-04-2005 à 16:52:58  profilanswer
 

n°1053906
masklinn
í dag viðrar vel til loftárása
Posté le 20-04-2005 à 17:00:22  profilanswer
 

Sinon il y a IOTBS


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1053931
yoyo354
Yoyo, le roi du ...
Posté le 20-04-2005 à 17:11:39  profilanswer
 

:pt1cable:  
 
EDIT : ça fonctionne defois un peu...:ouch:  
 
Bref, ça déconne... Vous pouvez tester par vous même http://yoyo.eurotchat.net/index.php.  
 
Masklinn, IOTBS utilise du javascript et je ne veux pas en utiliser vue le nombre de personne qui le déscative.


Message édité par yoyo354 le 20-04-2005 à 17:12:55

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1053936
skeye
Posté le 20-04-2005 à 17:13:35  profilanswer
 

yoyo354 a écrit :

:pt1cable:  
 
EDIT : ça fonctionne defois un peu...:ouch:  
 
Bref, ça déconne... Vous pouvez tester par vous même http://yoyo.eurotchat.net/index.php.  
 
Masklinn, IOTBS utilise du javascript et je ne veux pas en utiliser vue le nombre de personne qui le déscative.


chez moi ça marche très bien sous firefox et IE.


---------------
Can't buy what I want because it's free -
n°1053941
babar9160
Fan d'Ada et de Perl...
Posté le 20-04-2005 à 17:14:29  profilanswer
 

Ça marche bien ton truc... mais aïe les yeux quand on passe en rouge ou en rose...
Sinon c'est vraiment pas mal..

n°1053960
yoyo354
Yoyo, le roi du ...
Posté le 20-04-2005 à 17:23:15  profilanswer
 

En effet, cela fonctionne defois...  
Voici la procédure qui permet de le faire déconner ce petit monde :  
- Effacer les cookies du domaine yoyo.eurotchat.net ;
- Aller sur la page d'accueil : http://yoyo.eurotchat.net/index.php ;
- Changer le style en rose :love: et faire ok ;
(là, la page devient bien rose)
- Aller sur "mes potes" ;
- Changer le style en rouge et faire ok ;
(là, la page devient bien rouge)
- Aller sur la page "accueil" ;
 :pt1cable:  ET LA : la page est rose et NON rouge... :cry:
 
EDIT : J'avais oublié de dire merci pour avoir tester les styles sur mon site  :ange:  
       - Sinon babar9160, je te l'accorde, les couleurs sont à chier  :lol: ( le rose c'est pour une copine..) (le rouge, c'est pour montrer mes talents de graphiste :bounce:...)


Message édité par yoyo354 le 20-04-2005 à 17:34:04

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1054796
babar9160
Fan d'Ada et de Perl...
Posté le 21-04-2005 à 08:57:47  profilanswer
 

J'ai encore mieux...
 
J'arrive sur ton site : il est en noir.
Je le mets en rouge...
Je vais dans une rubrique peu importe, et je mets en rose.
Ben quand je reviens sur l'accueil... tadaaa c'est noir :p
 
Doit il y avoir un soucis. D'autant plus que si je vais sur une autre rubrique c'est bien en rose. A ne plus rien y comprendre.

n°1054887
yoyo354
Yoyo, le roi du ...
Posté le 21-04-2005 à 10:45:12  profilanswer
 

Surtout que tout presque toute les rubriques mène à l'accueil->index.php, les autres rubriques sont des includes dans index.php (pour les adresses -> url-rewriting)
 
Là, je suis pommé


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1056738
yoyo354
Yoyo, le roi du ...
Posté le 22-04-2005 à 15:32:58  profilanswer
 

[:atreyu]


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1056776
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 22-04-2005 à 15:47:57  profilanswer
 
n°1056801
yoyo354
Yoyo, le roi du ...
Posté le 22-04-2005 à 15:55:38  profilanswer
 

merci pour le lien mais je l'avais déjà vue.
J'utilise uniquement des feuilles de style et je ne veux pas de javascript :whistle:


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
n°1056943
cerel
Posté le 22-04-2005 à 16:55:42  profilanswer
 

Juste une idee comme ca, ce serait pas un probleme lie au cache ?
 
Enfait le probleme viens de ton cookie.
J'ai efface tes cookies, je vais sur ton site, un cookie est cree "style noir", le path de ce cookie est "/".
 
Si maintenant je vais dans une rubrique, et que je change le style, un autre cookie sera cree avec un autre path.
Donc du coup quand tu reviens sur la page d'accueil il reprends le premier cookie avec le path "/" .
 
Donc regarde la gestion de ton cookie, est il faut que tu lui indique "/" comme path tout le temps.


Message édité par cerel le 22-04-2005 à 17:00:37
n°1057021
yoyo354
Yoyo, le roi du ...
Posté le 22-04-2005 à 17:43:00  profilanswer
 

J'avoue ne pas très bien comprendre le changement de path...  

Code :
  1. setcookie('cookie_name', 'blablabla', (time() + 3600), 'yoyo.eurotchat.net/');

:??:  
 
Mais sinon, il faudrait effacé tout les cookies avant den créer un autre ?
EDIT :  :pfff:
 
Edit 2 :  :jap:  :love:  

Code :
  1. if (isset($_POST['style'])){
  2.   setcookie('style', $_POST['style'], time()+131400, '/'); // 3600 est juste un exemple
  3.   $fstyle = $_POST['style']; // attention aux pbs de securité
  4. } elseif (isset($_COOKIE['style'])) {
  5.   $fstyle = $_COOKIE['style']; // attention aux pbs de securité
  6. else {
  7.   $fstyle = "noir"; // style par défaut
  8. }


 
Voilà, en effet Cerel, il s'agissait bien d'un problème de path.


Message édité par yoyo354 le 22-04-2005 à 18:10:08

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu]Changement de style, cookie, path

 

Sujets relatifs
printf("%s") sur fonction renvoyant une chaîne [RESOLU][résolu] VB.NET ...
Quel est ce langage ? -- RESOLU --[php/js] recuperer une variable js dans une popup -=resolu=-
lecture/écriture binaire (depuis URL) [Résolu][JAVA]Pb retour variable... [Résolu]
[resolu][MYSQL] CREATE VIEW ???[C] Stocker une valeur entière dans un char * [Résolu]
taille d'une chaine de caratere? [RESOLU][RESOLU] - Superposer 2 Div en position:relative ?
Plus de sujets relatifs à : [Résolu]Changement de style, cookie, path


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR