Page aleatoire

louis1984 Messages postés 344 Statut Membre -  
louis1984 Messages postés 344 Statut Membre -
Bonjour,

J'aimerais que sur ma page d'accueil il y ai une partie qui affiche un contenu different chaque jour.

Dans ce contenu il y aura du texte, une image et un lien. Je dispose de 10 pages differentes qui doivent s'afficher aleatoirement chaque jour.

Est-ce possible de faire ca? si oui, comment faire?
Configuration: Windows Vista Internet Explorer 7.0

42 réponses

  • 1
  • 2
  • 3
Résumé de la discussion

La problématique consiste à faire afficher, sur la page d'accueil, un contenu différent chaque jour parmi 10 pages, comprenant texte, image et lien, de manière automatique et récurrente. Des approches basées sur PHP suggèrent d'utiliser la date du jour (par exemple date('j')) pour déterminer quel contenu afficher, puis de transmettre ce chiffre via un paramètre jour dans l'URL. Dans le fichier qui gère le contenu du jour, on peut convertir la valeur du jour en un indice entre 1 et 10 (avec modulo 10), puis afficher le contenu correspondant. En pratique, une solution simple consiste à générer le lien jour avec la date du jour, puis à récupérer ce paramètre sur la page cible pour charger le contenu correspondant.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. notobe Messages postés 2222 Statut Membre 213
     
    En php...

    Cela dit, Louis, je crois d'après cet échange que vous êtes débutant.
    Alors ne cherchez pas compliqué pour l'instant.

    Réussissez déjà à faire une seule page fixe sans erreurs, respectant les standards et la sémantique, fonctionnant sur tous les navigateurs, et après on pourra parler de choses plus "exotiques".
    0
  2. louis1984 Messages postés 344 Statut Membre 6
     
    Merci notobe... je suis debutant mais j'ai envie d'avancer sur mon site.. j'ai deja corriger la plutpart des erreurs sur mon site et il fonctionne sur tous les navigateurs excepter pour les histoires d'arrondis ou je dois utiliser roudies pour IE.. mais je ferai ca plus tard.

    Donc pour ce qui est de mon probleme actuel j'ai trouver la fonction suivante:

    <?php $date=explode(",", date("H,i,s,m,d,Y")); ?>
    <a href="contenu_du_jour.php?article?id=<? echo $date[4]; ?>">contenu du jour</a>

    Mais je ne sais pas trop comment je dois faire a present pour arriver a ce que je veux a partir de ce code, quelqu'un pourrait-il m'aider?
    0
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    contenu_du_jour.php?article?id=<? echo $date[4]; ?>
    Commence par remplace "<?" par "<?php", et "?article?id=" par "?jour=". Donc tu obtiendra ceci :
    contenu_du_jour.php?jour=<?php echo $date[4]; ?>


    Ensuite, dans "contenu_du_jour.php" :
    <?php
    if($_GET['jour'] == '1') {
        echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
        echo 'Jour 2';
    } elseif ( ... ) {
        ...
    }
    ?>
    0
  4. louis1984 Messages postés 344 Statut Membre 6
     
    Merci bcp avion, mais je ne comprends pas tres bien comment je dois organiser mon site...

    En gros je creer un page contenu_du_jour.php ou je mets le code:

    <?php
    if($_GET['jour'] == '1') {
    echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
    echo 'Jour 2';
    } elseif($_GET['jour'] == '3') {
    echo 'Jour 3';
    }
    ?>

    (si par exemple j'ai 3 fichiers qui doivent apparaitre aleatoirement).

    Et ensuite ou dois-je mettre la partie suivante:

    <?php $date=explode(",", date("H,i,s,m,d,Y")); ?>
    <a href="contenu_du_jour.php?jour=<?php echo $date[4]; ?>

    Dans la meme page? (contenu_du_jour)?

    Et ou est-ce que je dois mettre le contenu qui doit s'afficher aleatoirement. Si par exemple je veux afficher le texte "AAAAAAAA" le jour 1, "BBBBBBB" le jour 2 et "CCCCCC" le jour 3?

    Merci pour ton aide.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Ton code est long inutilement
    <a href="contenu_du_jour.php?jour=<?php echo date('j'); ?>
    suffit.

    "Et ou est-ce que je dois mettre le contenu qui doit s'afficher aleatoirement. Si par exemple je veux afficher le texte "AAAAAAAA" le jour 1, "BBBBBBB" le jour 2 et "CCCCCC" le jour 3?"
    La :
    <?php
    if($_GET['jour'] == '1') {
        echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
        echo 'Jour 2';
    } elseif ( ... ) {
        ...
    }
    ?>
    0
  7. louis1984 Messages postés 344 Statut Membre 6
     
    Juste pour etre sur, si par exemple j'ai 10 contenus a afficher aleatoirement, je dois mettre dans ma page "contenu_du_jour.php" le code suivant tel quel:

    <a href="contenu_du_jour.php?jour=<?php echo date('j'); ?>

    <?php
    if($_GET['jour'] == '1') {
    echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
    echo 'Jour 2';
    } elseif($_GET['jour'] == '3') {
    echo 'Jour 3';
    } elseif($_GET['jour'] == '4') {
    echo 'Jour 4';
    } elseif($_GET['jour'] == '5') {
    echo 'Jour 5';
    } elseif($_GET['jour'] == '6') {
    echo 'Jour 6';
    } elseif($_GET['jour'] == '7') {
    echo 'Jour 7';
    } elseif($_GET['jour'] == '8') {
    echo 'Jour 8';
    } elseif($_GET['jour'] == '9') {
    echo 'Jour 9';
    } elseif($_GET['jour'] == '10') {
    echo 'Jour 10';
    }
    ?>

    Le probleme est que j'ai ce message quand je lance la page contenu_du_jour.php:

    <a href="contenu_du_jour.php?jour=10

    .... de plus comment je peux faire une boucle, c'est a dire que au bout du 10eme jour, la page affiche le jour 1 ?
    0
  8. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Tu as tout compris.
    Pour la boucle :
    <?php
    $_GET['jour'] = $_GET['jour'] % 10;
    if($_GET['jour'] == '1') {
    echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
    echo 'Jour 2';
    } elseif($_GET['jour'] == '3') {
    echo 'Jour 3';
    } elseif($_GET['jour'] == '4') {
    echo 'Jour 4';
    } elseif($_GET['jour'] == '5') {
    echo 'Jour 5';
    } elseif($_GET['jour'] == '6') {
    echo 'Jour 6';
    } elseif($_GET['jour'] == '7') {
    echo 'Jour 7';
    } elseif($_GET['jour'] == '8') {
    echo 'Jour 8';
    } elseif($_GET['jour'] == '9') {
    echo 'Jour 9';
    } elseif($_GET['jour'] == '10') {
    echo 'Jour 10';
    }
    ?>
    0
  9. louis1984 Messages postés 344 Statut Membre 6
     
    Merci!

    Mais il y a un petit probleme technique car on est le 10 aujourdhui et il devrait m'afficher "Jour10"

    Au lieu de ca il m'affiche: <a href="contenu_du_jour.php?jour=10

    ... une idee?
    0
  10. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Bonsoir, <a href="contenu_du_jour.php?jour=<?php echo date('j'); ?>">contenu du jour</a>, peut-être ?
    0
  11. louis1984 Messages postés 344 Statut Membre 6
     
    Merci Bertrand,

    Mais maintenant il m'affiche un lien "contenu du jour" au lieu d'afficher le texte "Jour 10"...
    0
  12. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Et bien contenu du jour est à remplacer par Jour10, que tu récupères avec ta boucle non ? Il te manque juste la fermeture du lien.

    <a href="contenu_du_jour.php?jour=<?php echo date('j'); ?>">

    <?php
    $_GET['jour'] = $_GET['jour'] % 10;
    if($_GET['jour'] == '1') {
    echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
    echo 'Jour 2';
    } elseif($_GET['jour'] == '3') {
    echo 'Jour 3';
    } elseif($_GET['jour'] == '4') {
    echo 'Jour 4';
    } elseif($_GET['jour'] == '5') {
    echo 'Jour 5';
    } elseif($_GET['jour'] == '6') {
    echo 'Jour 6';
    } elseif($_GET['jour'] == '7') {
    echo 'Jour 7';
    } elseif($_GET['jour'] == '8') {
    echo 'Jour 8';
    } elseif($_GET['jour'] == '9') {
    echo 'Jour 9';
    } elseif($_GET['jour'] == '10') {
    echo 'Jour 10';
    }
    ?>

    </a>
    0
  13. louis1984 Messages postés 344 Statut Membre 6
     
    On dirait que je suis maudit.. si j'integre le code que tu indiques, la pages ne m'affiche rien du tout cette fois...
    0
  14. graffx Messages postés 120 Date d'inscription   Statut Contributeur Dernière intervention   2 031
     
    met ce que tu as a fait, on avancera plus vite.
    0
  15. louis1984 Messages postés 344 Statut Membre 6
     
    Donc j'ai creer une page contenu_du_jour.php qui contient ca:

    <a href="contenu_du_jour.php?jour=<?php echo date('j'); ?>">

    <?php
    $_GET['jour'] = $_GET['jour'] % 10;
    if($_GET['jour'] == '1') {
    echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
    echo 'Jour 2';
    } elseif($_GET['jour'] == '3') {
    echo 'Jour 3';
    } elseif($_GET['jour'] == '4') {
    echo 'Jour 4';
    } elseif($_GET['jour'] == '5') {
    echo 'Jour 5';
    } elseif($_GET['jour'] == '6') {
    echo 'Jour 6';
    } elseif($_GET['jour'] == '7') {
    echo 'Jour 7';
    } elseif($_GET['jour'] == '8') {
    echo 'Jour 8';
    } elseif($_GET['jour'] == '9') {
    echo 'Jour 9';
    } elseif($_GET['jour'] == '10') {
    echo 'Jour 10';
    }
    ?>

    </a>
    0
  16. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Pourquoi mets-tu le PHP dans la balise a ?
    Tu fais simplement un lien "<a href="contenu_du_jour.php?jour=<?php echo date('j'); ?>">Lien</a>" et dans contenu_du_jour.php tu mets le code PHP.
    0
  17. Bertrand40 Messages postés 1344 Statut Membre 197
     
    On est le 10 janvier.
    %10 = 0 non ?
    Comme aucune condition ne remplit le cas où $_GET['jour'] == 0, ça n'affiche rien, c'est normal.
    0
  18. louis1984 Messages postés 344 Statut Membre 6
     
    Il devrait m'afficher ma page numero 10... puisque j'ai dix pages...

    comment je peux faire? j'avoue que je comprends pas bien l'histoire des 10%..

    autre question, comment je peux faire pour que le contenu d'affiche directement sur ma page sans avoir a cliquer sur le lien? En gros a la place d'avoir le lien j'aimerais le contenu de la page numero 10...
    0
  19. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Je n'y avais pas pensé.
    La solution serait de faire de 0 à 9 et :
    if($_GET['jour'] > 10) {
        $_GET['jour'] = $_GET['jour'] % 10;
    } else {
        $_GET['jour'] = $_GET['jour'] - 1;
    }
    0
  20. Bertrand40 Messages postés 1344 Statut Membre 197
     
    voilà, ou changer ça :
    elseif($_GET['jour'] == '10') {
    echo 'Jour 10'; }

    par ça :
    elseif($_GET['jour'] == '0') {
    echo 'Jour 10'; }

    PS : les { } sont inutiles dans ton cas
    0
    1. Bertrand40 Messages postés 1344 Statut Membre 197
       
      Plus court tu as :

      SWITCH ($_GET['jour'])
      {
      case 0 : echo 'Jour10';
      break;
      case 1 : echo 'Jour1';
      break;
      case 2 : echo 'Jour2';
      break;
      case 3 : echo 'Jour3';
      break;
      case 4 : echo 'Jour4';
      break;
      case 5 : echo 'Jour5';
      break;
      case 6 : echo 'Jour6';
      break;
      case 7 : echo 'Jour7';
      break;
      case 8 : echo 'Jour8';
      break;
      case 9 : echo 'Jour9';
      break;
      }
      0
      1. louis1984 Messages postés 344 Statut Membre 6 > Bertrand40 Messages postés 1344 Statut Membre
         
        Par contre celui ci marche pas pour le 10.. j'ai rien qui s'affiche aujourd'hui..

        Et comment je peux faire pour que le contenu du jour s'affiche directement au lieu d'avoir un lien ou il faut cliquer pour acceder au contenu?
        0
  21. louis1984 Messages postés 344 Statut Membre 6
     
    Merci avion j'ai mis ca dans ma page contenudujour:

    <?php
    if($_GET['jour'] > 10) {
    $_GET['jour'] = $_GET['jour'] % 10;
    } else {
    $_GET['jour'] = $_GET['jour'] - 1;
    }
    if($_GET['jour'] == '1') {
    echo 'Jour 1';
    } elseif($_GET['jour'] == '2') {
    echo 'Jour 2';
    } elseif($_GET['jour'] == '3') {
    echo 'Jour 3';
    } elseif($_GET['jour'] == '4') {
    echo 'Jour 4';
    } elseif($_GET['jour'] == '5') {
    echo 'Jour 5';
    } elseif($_GET['jour'] == '6') {
    echo 'Jour 6';
    } elseif($_GET['jour'] == '7') {
    echo 'Jour 7';
    } elseif($_GET['jour'] == '8') {
    echo 'Jour 8';
    } elseif($_GET['jour'] == '9') {
    echo 'Jour 9';
    } elseif($_GET['jour'] == '10') {
    echo 'Jour 10';
    }
    ?>

    Et ca marche. J'ai le lien qui m'amene a www.monsite/contenu_du_jour.php?jour=10

    et ca m'affiche bien "jour 9".

    Maintenant comment je peux faire pour avoir le contenu ("jour 9") qui s'affiche directement lorsque je vais a ma page "test.php" (qui contient ca: "<a href="contenu_du_jour.php?jour=<?php echo date('j'); ?>">Lien</a>") sans avoir a passer par le lien ou il faut cliquer?
    0
  • 1
  • 2
  • 3