IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Changer la CSS à chaque visite


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Changer la css automatiquement
    Bonjour à tous!

    J'ai ma petite question à vous poser. J'avais trouvé la réponse il y a un moment, mais impossible d'y remettre la main dessus.
    Je souhaiterais que la CSS de mon site (fait en grande partie avec Wordpress) change automatiquement toutes les 3 visites par exemple.
    J'imagine bien qu'il faut un code php (correct?), et l'image de mon fond d'écran est appelée dans ma CSS.
    Il me semble que ce n'est pas très compliqué à mettre en place, mais j'ai oublié comment faire! J'ai cherché sur le forum et un peu partout sur le web, mais ma requête ne doit pas être assez bien formulée: je ne trouve rien....

    Si vous pouvez m'aider, j'en serai ravie!

    Dernière modification par Invité ; 04/08/2011 à 17h35.

  2. #2
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    Bonjour,

    Mhh avec un cookie ça devrait se faire...
    En pondant un bout de code comme ça ca devrait te donner une piste :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    // Durée de vie de mon cookie, presque 6 mois par exemple :
    $expire = (6*30*24*3600);
     
    // Je zieute combien de fois mon visiteur est venu, s'il a un "theme" css défini :
    if(isset($_COOKIE['nb_visite'])){ 
    $nb_visite = $_COOKIE['nb_visite'];
    $themecss = $_COOKIE['themecss'];
    } else {
    // S'il n'est jamais venu je lui en assigne un de base :	
    $nb_visite = 0;
    $themecss= 'themecss1';
    setcookie("themecss","themecss1", time()+$expire, "/");
    }
    $nb_visite=($nb_visite+1);
    setcookie("nb_visite",$nb_visite, time()+$expire, "/");
    // Toutes les 3 visites tu changes le thème :
    if ($nb_visite%3==0) { 
    // tu insères ici un code pour déterminer ton nouveau thème css
    setcookie("themecss",$monnouveautheme, time()+$expire, "/");
    $themecss=$monnouveautheme;
    }
    ?>
    Tu n'auras plus qu'à appeler ton thème css en fonction de cette variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" type="text/css" media="screen,projection" href="<?php echo $themecss; ?>">
    Une idée comme ça...

  3. #3
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    C'est exact, il faut un langage coté serveur comme PHP, voici un tutoriel : http://css4design.developpez.com/tut...ique-avec-php/.

    Sinon on peut aussi modifier des styles avec JavaScript, mais je ne maitrises pas assez ce langage pour t'en dire plus...

  4. #4
    Invité
    Invité(e)
    Par défaut
    waouw, ça a l'air super! Merci beaucoup.
    Je vais faire des tests et je vous tiendrai au courant.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bien, évidemment j'ai encore des questions....
    En ce qui concerne le cookie, je pense que ça va. Là où je ne comprends pas bien, c'est au niveau de la CSS.

    $themecss= 'themecss1';
    Est-ce que 'themecss1' correspond au nom de mon fichier css?

    $themecss=$monnouveautheme;
    Là j'imagine que je dois préciser à quoi correspond $monnouveautheme, en faisant par exemple:
    $monnouveautheme='themecss2'

    C'est bien ça?
    Ce sont des questions de débutants...

  6. #6
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Citation Envoyé par thecaco Voir le message
    Bien, évidemment j'ai encore des questions....
    En ce qui concerne le cookie, je pense que ça va. Là où je ne comprends pas bien, c'est au niveau de la CSS.

    $themecss= 'themecss1';
    Est-ce que 'themecss1' correspond au nom de mon fichier css?

    $themecss=$monnouveautheme;
    Là j'imagine que je dois préciser à quoi correspond $monnouveautheme, en faisant par exemple:
    $monnouveautheme='themecss2'

    C'est bien ça?
    Ce sont des questions de débutants...
    Oui ces variables correspondent à tes différentes css

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ça marche! Merci beaucoup!
    Voici le code que j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    $monnouveautheme='style2.css';
    // Durée de vie de mon cookie, presque 6 mois par exemple :
    $expire = (6*30*24*3600);
     
    // Je zieute combien de fois mon visiteur est venu, s'il a un "theme" css défini :
    if(isset($_COOKIE['nb_visite'])){ 
    $nb_visite = $_COOKIE['nb_visite'];
    $themecss = $_COOKIE['themecss'];
    } else {
    // S'il n'est jamais venu je lui en assigne un de base :	
    $nb_visite = 0;
    $themecss= 'stationweb.css';
    setcookie("themecss","style2.css", time()+$expire, "/");
    }
    $nb_visite=($nb_visite+1);
    setcookie("nb_visite",$nb_visite, time()+$expire, "/");
    // Toutes les 3 visites tu changes le thème :
    if ($nb_visite==3) { 
    // tu insères ici un code pour déterminer ton nouveau thème css
    setcookie("themecss",$monnouveautheme, time()+$expire, "/");
    $themecss=$monnouveautheme;
    }
    ?>
    Il me reste juste une petite question.
    - Ce code permet-il de faire une boucle? (il me semble que non). J'aimerais qu'on puisse obtenir cela: 1ère visite: style1.css / 3ème visite: style2.css / 6ème visite: style1.css ou quelque chose d'approchant...

    Je suppose dans ce cas qu'il faut utiliser la boucle foreach....
    Je vais chercher encore.

    Merci de votre aide!

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    as-tu lu (et compris) le code ?
    Car il répond à tes questions ...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    as-tu lu (et compris) le code ?
    Car il répond à tes questions ...
    Bien sûr, j'ai lu le code. Je n'ai peut-être pas tout compris, mais j'essaie. En tout cas, je ne suis pas du genre à faire des copier-coller sans chercher à comprendre, si ça peut te rassurer.


    Je suis en train de tester des modifications pour arriver à ce que je veux, mais je fais des erreurs.
    Je teste en ce moment avec des else, else if.... mais j'avoue que je patauge un peu, surtout dans la syntaxe. Car en lisant le code je comprends vers où je dois aller, et je vois à quoi correspondent les choses. Mon problème est que je n'arrive pas à écrire, tout simplement.
    En tout cas, je continue.
    J'avance petit à petit, et j'essaie en ce moment de reproduire une partie de ce code pour faire afficher une troisième css.
    Voilà où j'en suis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $monnouveautheme='style2.css';
    $monnouveautheme2='style3.css';
     
    // Durée de vie de mon cookie, presque 6 mois par exemple :
    $expire = (6*30*24*3600);
     
    // Je zieute combien de fois mon visiteur est venu, s'il a un "theme" css défini :
    if(isset($_COOKIE['nb_visite'])){ 
    $nb_visite = $_COOKIE['nb_visite'];
    $themecss = $_COOKIE['themecss'];
    } else {
    // S'il n'est jamais venu je lui en assigne un de base :	
    $nb_visite = 0;
    $themecss= 'style.css';
    setcookie("themecss","style.css", time()+$expire, "/");
    }
    $nb_visite=($nb_visite+1);
    setcookie("nb_visite",$nb_visite, time()+$expire, "/");
    // Toutes les 3 visites tu changes le thème :
    else ($nb_visite%3==0) { 
    // tu insères ici un code pour déterminer ton nouveau thème css
    setcookie("themecss",$monnouveautheme, time()+$expire, "/");
    $themecss=$monnouveautheme;
    }
    else ($nb_visite%6==0) { 
    // tu insères ici un code pour déterminer ton nouveau thème css
    setcookie("themecss",$monnouveautheme, time()+$expire, "/");
    $themecss=$monnouveautheme2;
    }

  10. #10
    Invité
    Invité(e)
    Par défaut
    Tout ce que tu as à faire, c'est indiquer les noms de tes fichiers CSS.

    J'ai posé la question ,car tu n'as peut-etre pas bien compris le fonctionnement du fichier, ou l'utilisation du cookie

    regarde ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    ...
    $nb_visite=($nb_visite+1); // ici : on incrémente le cookie AUTOMATIQUEMENT
    // Toutes les 3 visites tu changes le thème :
    if ($nb_visite==3) { 
    	// tu insères ici un code pour déterminer ton nouveau thème css
    	setcookie("themecss",$monnouveautheme, time()+$expire, "/");
    	$themecss=$monnouveautheme;
    }
    ?>

  11. #11
    Invité
    Invité(e)
    Par défaut
    Je pense avoir assez bien compris le code. Je me suis du coup également mieux renseignée sur les cookies (que je connaissais quand même déjà).

    J'ai bien mis le nom de mes fichiers, mais je n'arrive pas à revenir à la première css après être passée par la deuxième...

    Je sais, ça peut paraître tout bête!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Toutes les 3 visites tu changes le thème :
    else ($nb_visite==3)
    Effectivement, j'étais bien dans ce coin. Mais au lieu de ça, j'avais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Toutes les 3 visites tu changes le thème :
    else ($nb_visite%3==0)
    Chose que je ne comprends pas...

  12. #12
    Invité
    Invité(e)
    Par défaut
    Tu peux faire simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if ($nb_visite%3==1) { 
    	// -> theme 1
    } elseif ($nb_visite%3==2) { 
    	// -> theme 2
    } else { 
    	// -> theme 3
    }
    ?>
    Encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    // 3 themes css en alternance
    $mes_themes = array('theme1.css','theme2.css','theme3.css');
    	setcookie("themecss",$mes_themes[($nb_visite%3)], time()+$expire, "/");
    	$themecss=$mes_themes[($nb_visite%3)];
    ?>
    [Edit] Ah non, j'ai mal lu ta demande ... Ici je change à chaque nouvelle visite ...

  13. #13
    Invité
    Invité(e)
    Par défaut
    D'accord! C'est en plein dans la partie qui n'était pas claire pour moi!
    Je vais faire ça. Merci beaucoup!

  14. #14
    Invité
    Invité(e)
    Par défaut
    Ce qui porte encore à confusion, c'est ca :
    Citation Envoyé par thecaco Voir le message
    toutes les 3 visites
    Ca veut dire :
    -> à la 3ème visite
    -> OU après la 3ème visite ?

    Car c'est CA qui va déterminer l'algorithme correct.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    visite 1 -> theme 1		-	1%3 = 1		-	1%9 = 1
    visite 2 -> theme 1		-	2%3 = 2		-	2%9 = 2
    visite 3 -> theme 1		-	3%3 = 0		-	3%9 = 3
    -------------------
    visite 4 -> theme 2		-	4%3 = 1		-	4%9 = 4
    visite 5 -> theme 2		-	5%3 = 2		-	5%9 = 5
    visite 6 -> theme 2		-	6%3 = 0		-	6%9 = 6
    -------------------
    visite 7 -> theme 3		-	7%3 = 1		-	7%9 = 7
    visite 8 -> theme 3		-	8%3 = 2		-	8%9 = 8
    visite 9 -> theme 3		-	9%3 = 0		-	9%9 = 0
    -------------------
    visite 10 -> theme 1		-	10%3 = 1	-	10%9 = 1
    visite 11 -> theme 1		-	11%3 = 0	-	11%9 = 2
    ...
    => donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    - tu changes de thème à chaque fois que $nb_visite%3==1
    - tu passes au thème 1 à chaque fois que $nb_visite%9==1
    - tu passes au thème 2 à chaque fois que $nb_visite%9==4
    - tu passes au thème 3 à chaque fois que $nb_visite%9==7
    Dernière modification par Invité ; 05/08/2011 à 19h49.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    // 3 themes css en alternance
    $mes_themes = array('theme1.css','theme2.css','theme3.css');
    	setcookie("themecss",$mes_themes[($nb_visite%3)], time()+$expire, "/");
    	$themecss=$mes_themes[($nb_visite%3)];
    ?>
    [Edit] Ah non, j'ai mal lu ta demande ... Ici je change à chaque nouvelle visite ...
    Mais c'est pas mal ça. J'ai voulu l'essayer, mais ça me laisse toujours le premier thème.
    Pourrais-tu m'expliquer ce que signifie: ($nb_visite%3)
    Ça m'aiderait beaucoup pour pouvoir travailler le code.

  16. #16
    Invité
    Invité(e)
    Par défaut
    le modulo (xxx%yyy) renvoie "le reste de la division de XXX par YYY".
    exemple avec "modulo3" et "modulo9" :
    1%3 = 1 - 1%9 = 1
    2%3 = 2 - 2%9 = 2
    3%3 = 0 - 3%9 = 3
    -------------------
    4%3 = 1 - 4%9 = 4
    5%3 = 2 - 5%9 = 5
    6%3 = 0 - 6%9 = 6
    -------------------
    7%3 = 1 - 7%9 = 7
    8%3 = 2 - 8%9 = 8
    9%3 = 0 - 9%9 = 0
    -------------------
    10%3 = 1 - 10%9 = 1
    11%3 = 0 - 11%9 = 2
    ...
    $nb_visite%3 ne prends que 3 valeurs : 0,1 ou 2
    $nb_visite%9 ne prends que 9 valeurs : 0,1,2,3,4,5,6,7 ou 8
    ...

    Voici 2 exemples concrets d'utilisation : table html - Affichage "en ligne" avec array() et V-B. Affichage "en Colonne"

  17. #17
    Invité
    Invité(e)
    Par défaut
    Encore une fois, merci beaucoup pour tes explications et ton temps.
    Je pense avoir bien compris.
    J'avais étudié les modulos, mais j'avais eu beaucoup de mal avec ça il y a quelques années, et là je ne les avais pas reconnus.

    J'ai fait quelques tests, je pense que ça marche. J'arrive bien à changer les CSS selon le nombre de visites que je choisis.
    Je teste encore un peu, et quand je serai sûre de moi, je mettrai le message comme "réglé".


  18. #18
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup. J'arrive maintenant à bien manipuler le code pour en faire ce que je veux grâce à vos explications!
    J'ai encore quelques soucis pour l'appeler sur Wordpress, mais c'est une autre histoire. Je vais bien arriver à trouver.

    Merci encore!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri par nom sans doublons et le compter chaque visite
    Par epiouf dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/06/2009, 16h02
  2. Changer feuille css
    Par hugo7 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 25/05/2009, 15h58
  3. Changer de titre à chaque page
    Par schats dans le forum Langage
    Réponses: 9
    Dernier message: 18/07/2007, 21h33
  4. Changer classe CSS
    Par jorisvh dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2007, 02h06
  5. [Login] Se connecter automatiquement à chaque visite????
    Par AdHoc dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 8
    Dernier message: 01/12/2005, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo