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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Recherche un script style "image du jour" ou "citation du jour"


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Recherche un script style "image du jour" ou "citation du jour"
    Bonjour,

    Je cherche un script qui me permettrait d'appeler une page html differente chaque jour dans une iframe. Pour le moment j'ai 12 pages (pas de BD) et je voudrais les faire alterner de jour en jour. Je suis debutante en php et suis un peu bloquee sur les dates et defilement des jours. Je ne sais pas trop comment le mettre en place.

    Merci d'avance de m'eclairer,


    Dakini

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Etant donné que tu n'as pas de BDD il n'est pas possible de stocker quelle page tu as affiché la veille donc ça coince un peu.

    Une première solution grossière pourrait être de définir un tableau avec 31 cases, et dans chaque case tu mets un nom de page différent (vu que tu en as 12 il y en a qui vont se répêter)

    Ensuite à l'affichage de la page tu récupères le numéro du jour, tu vas voir dans le tableau quelle page afficher etle tour est joué !
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    sinon tu peux aussi utiliser la fonction rand()

    tu nomme tes pages page1.html,page2.html,...

    et tu appelles ta page sous la forme 'page'.rand(1,12).'html'

    (bon ca te la changera à chaques fois et non chaque jours... mais ca peut etre sympa aussi si tu as plus de pages)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    A mon avis, c'est tres simple sans base de données.

    Tu crées un fichier .txt où tu mets tes 12 pages, exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    page1.html page2.html ......... page12.html
    Ensuite, tu as deux solutions, soit tu possedes un serveur dédié et tu utilises un cron qui va lancer ton script php toutes les 24h soit tu n'en as pas et là c'est plus compliqué.

    Par facilité, et etant donné que c'est assez simple de trouver un crontab gratuit sur internet, je ne traiterai que cette option là. ( Voici un cron gratuit )

    Donc tu crées un fichier php qui va prendre la page du jour et la passer à la fin à chaque fois qu'on l'appelle!

    Voici le script php:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?php
    //--------------------------
    //Fonction tirée du manuel php
    //Elle remplace que la premiere occurence
    //--------------------------
    function ReplaceOne($in, $out, $content)
    {
       if ($pos == strpos($content, $in))
       {
           return substr($content, 0, $pos) . $out . substr($content, $pos+strlen($in));
       }
       else 
       {
           return $content;
       }
    }
     
    //--------------------------
    //Nom du fichier
    //--------------------------
    $fichier = "pages.txt";
     
    //--------------------------
    //On recupere les infos du fichier
    //--------------------------
    $page = file_get_contents($fichier);
     
    //--------------------------
    //On sépare les donnees
    //--------------------------
    $donnees = explode(" ", $page);
     
    //--------------------------
    //On assigne une nouvelle variable
    //pour ne pas la perdre
    //--------------------------
    $page_ancienne = $donnees[0];
     
    //--------------------------
    //On supprime l'ancienne page
    //--------------------------
    $page = str_replace($page_ancienne , '', $page);
     
    //--------------------------
    //On enleve l'espace en trop
    //--------------------------
    $page = ReplaceOne(' ', '', $page);
     
    //--------------------------
    //On rajoute l'ancienne page 
    //à la fin de la variable
    //--------------------------
    $page = $page . ' ' . $donnees[0];
     
    //--------------------------
    //On ouvre le fichier en ecriture
    //--------------------------
    $fp = fopen($fichier, "w");
     
    //--------------------------
    //On ecrit les donnees
    //--------------------------
    fputs($fp, $page);
     
    //--------------------------
    //On ferme le fichier
    //--------------------------
    fclose($fp);
     
    ?>
    Maintenant il faut donner le droit d'ecriture sur le fichier pages.txt (qui contient la liste des pages), c'est à dire qu'il faut mettre chmod 777 (avec filezilla clique droit sur le fichier et proprietes et 777).

    Ensuite, il faut ajouter une tache cron ( cron gratuit ), qui va appeller ton script php (mets l'url du script) et mettre tous les jours à 00h.

    Enfin, on extrait le nom de la page toujours avec un script php

    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
    31
    32
    33
    34
     
    <?php
    //--------------------------
    //Nom du fichier
    //--------------------------
    $fichier = "pages.txt";
     
    //--------------------------
    //On ouvre le fichier en mode lecture
    //--------------------------
    $fp = fopen($fichier, "r");
     
    //--------------------------
    //On lit la premiere ligne
    //--------------------------
    $donnees = fgets($fp, 255);
     
    //--------------------------
    //On ferme le fichier
    //--------------------------
    fclose($fp);
     
    //--------------------------
    //On sépare la premiere ligne
    //--------------------------
    $page_du_jour = explode(' ', $donnees);
     
    //--------------------------
    //On affiche une frame
    //--------------------------
    echo '<iframe src="' . $page_du_jour[0] . '" name="page du jour" height="350" width="450">';
    echo 'Désolé mais votre navigateur ne supporte pas les frames';
    echo '</IFRAME>';
    ?>
    C'est normal que ça affiche une erreur car la page n'existe pas

    J'espere t'avoir aidé.

    Si tu as un soucis n'hesite pas.

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Malheureusement, certaines propositions ci-dessus chargeront une iframe différente à chaque chargement de ta page.
    Je te propose quelque chose d'un peu différent. Tu vas avoir besoin de deux choses :
    • Un fichier last-loading.txt (le chmod doit être suffisant pour que PHP puisse le modifier) ;
    • Une variable de configuration dans ton script PHP : $files.
    Maintenant, je vais supposer que tu as PHP 5 pour me simplifier la tâche. Si ce n'est pas le cas, tu trouveras des équivalents à ces fonctions dans la FAQ PHP.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
     
    define('STATS_FILE_NAME', 'last-loading.txt');
    define('DATE_FORMAT', '%Y%m%d');
    define('CURRENT_TIMESTAMP', time());
     
    $files = array(
        'fichier-1.html',
        'fichier-2.html',
        'fichier-3.html',
        'fichier-4.html',
        'fichier-5.html',
        'fichier-6.html',
        'fichier-7.html',
        );
     
     
    if(!file_exists(STATS_FILE_NAME))
    {
        // Pas de fichier, on en écrit un
     
        define('IFRAME_URL', array_rand($files));
        define('FILE_TIMESTAMP', CURRENT_TIMESTAMP);
        file_put_contents(STATS_FILE_NAME, FILE_TIMESTAMP . ':' . IFRAME_URL);
    }
    else
    {
        // Un fichier est présent, utilisons-le
     
        $file_contents = split(':', file_get_contents(STATS_FILE_NAME));
        define('FILE_TIMESTAMP', $file_contents[0]);
     
        // Vérification du jour donné par le fichier
        if(date(DATE_FORMAT, CURRENT_TIMESTAMP) == date(DATE_FORMAT, FILE_TIMESTAMP))
        {
            // La date n'a pas changé, on peut utiliser la page du jour
            define('IFRAME_URL', $file_contents[1]);
        }
        else
        {
            // La date a changé, il faut mettre le fichier à jour
            $new_files = array_diff($files, array($file_contents[1]));
            define('IFRAME_URL', array_rand($new_files));
            file_put_contents(STATS_FILE_NAME, CURRENT_TIMESTAMP . ':' . IFRAME_URL);
        }
    }
     
     
    //
    // Maintenant, tu as une constante IFRAME_URL qui contient
    // le nom de la page à charger aujourd'hui
    //
     
    ?>
     
    <iframe src="<?php echo IFRAME_URL; ?>"></iframe>
    J'espère que cela t'aidera

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

Discussions similaires

  1. Recherche de script pour image style sncf
    Par mims1664 dans le forum Flash
    Réponses: 1
    Dernier message: 04/02/2009, 13h35
  2. [Scripts]recherche logiciel de capture d'image sur WMV
    Par gretch dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 20/11/2006, 11h46
  3. [JTextComponent] Afficher du texte avec style et image
    Par jean_bobi dans le forum Composants
    Réponses: 9
    Dernier message: 30/10/2005, 13h47
  4. recherche logiciel du style Webnotes 6.3
    Par Jeff87-01 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 30/09/2005, 09h40
  5. [CSS][IE] différencier style input image et input text
    Par ddams dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 06/09/2005, 14h42

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