Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
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 23/08/2006, 18h54   #1
Invité de passage
 
Inscription : février 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 5
Points : 2
Points : 2
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
dakini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h49   #2
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
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é !
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 16h35   #3
Futur Membre du Club
 
Inscription : mai 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 29
Points : 19
Points : 19
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)
bob.marley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 19h16   #4
Invité régulier
 
Inscription : août 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 6
Points : 7
Points : 7
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 :
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 :
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 :
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.
Mqrc_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 22h22   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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 :
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
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui 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 21h47.


 
 
 
 
Partenaires

Hébergement Web