Script bannière rotative (besoin d'un peu d'aide)

Eléphanteau du PHP | 16 Messages

13 avr. 2007, 14:14

Bonjour à tous et à toutes !

Voila j'ai un Script PHP fait maison pour diffuser différentes bannières enregistrés dans un fichier et étant en rotation à chaque nouvel affichage de page. Mais voila j'aimerais que vous m'aidiez si possible bien sur à le modifié afin que ces bannières se changent automatiquement au bout d'un certain temps (10 sec) et non à chaque refresh de la page ! :wink:

Voila le script :
<?php

$aleatoire = mt_rand(1, 5);
if ($aleatoire == 1)
{
echo 'Bannière 1';
}

if ($aleatoire == 2)
{
echo 'Bannière 2';
}

if ($aleatoire == 3)
{
echo 'Bannière 3';
}

if ($aleatoire == 4)
{
echo 'Bannière 4';
}

if ($aleatoire == 5)
{
echo 'Bannière 5';
}

if ($aleatoire >= 6)
{
echo '<b>Erreur : La bannière n\'a pu être trouvée.</b>';
}

?>
Je vous remercie de m'avoir lue !

Cordialement,

Yann

Invité
Invité n'ayant pas de compte PHPfrance

13 avr. 2007, 14:19

Je vois deux solutions :
- mettre en place le rafraichissement automatique dans la ou les pages appelant ton script via la balise meta :
<META HTTP-EQUIV="refresh" CONTENT="10;URL=mapage.php">

- soit passer par de l'ajax pour ne rafraichir que la bannière : le javascript interroge toutes les 10 secondes le serveur pour obtenir le code de la nouvelle page à afficher.

Eléphanteau du PHP | 16 Messages

13 avr. 2007, 14:37

Je vois deux solutions :
- mettre en place le rafraichissement automatique dans la ou les pages appelant ton script via la balise meta :
<META HTTP-EQUIV="refresh" CONTENT="10;URL=mapage.php">

- soit passer par de l'ajax pour ne rafraichir que la bannière : le javascript interroge toutes les 10 secondes le serveur pour obtenir le code de la nouvelle page à afficher.
je prefere la solution de rafraichir seulement la banniere :wink:

car la page c'est plus long :wink:

une petite éclairci sur un code à inséré ou autre ? :)

Merci à toi :wink:


EDIT : En utilisant le code
<META HTTP-EQUIV="refresh" CONTENT="10;URL=mapage.php"> 
au refesh de la page cela n'affiche que la page mapage.php ou ce trouve le script et non toute ma page :? mon script est placé sur mes pages via une include :wink:

Quelle est donc la meilleure solution ? peut-etre ai-je fait une erreur en plçant le code :?

Eléphant du PHP | 312 Messages

13 avr. 2007, 15:54

Pour la balise meta, il faut la placer entre les balises <head> et </head> des pages qui vont faire l'include de ton script.

Donc tu vas avoir quelque chose comme ceci :

mapage.php :
<html>
<head>
<META HTTP-EQUIV="refresh" CONTENT="10;URL=mapage.php" />
<title>Ma page à moi</title>
</head>
<body>
...
<?php include("monscript.php"); ?>
...
</body>
</html>
Pour la méthode Ajax, pour te simplifier la vie tu peux utiliser un framework php/ajax comme prototype.
Le principe est simple, dans la page qui va appeler le script, tu vas avoir un bout de code javascript qui dit "toutes les 10 secondes, tu appelles l'url http://monsite.com/monscript.php et ce que tu récupères, tu le places à un endroit précis de ma page html".

Tu trouveras peut-être des exemples sur la partie Ajax du forum.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 avr. 2007, 16:14

Aaaah non !! Pas d'ajax pour recharger une image, par pitié !! Pourquoi pas un module VB en .net avec des webservices, et une interface de calcul synchronisée avec la nasa pour savoir avec précision quand se seront écoulés les 10 secondes en heure solaire ? Nan parce que tant qu'à faire une usine à gaz.... :)

Au choix :
- En html : Tu insères une iframe dans ta page, qui ouvre ta page php. Du coup pas de problème pour la recharger toutes les 10 secondes avec un méta placé dans cette dernière. Si tu place ton méta refresh dans ta page principale, c'est toute la page qui est rechargée, sans sauvegarde ni avertissement, et ce quoi que soit en train de faire l'internaute dessus...
- En javascript : Tu utilises la fonction setInterval() de javascript pour changer toutes les 10 secondes la source de l'image (document.ton_image.src = 'nouvelle_image.jpg'), il y a la même fonction rand() en js. Voire si tu veux garder le random en php, tu remplaces le nom de l'image par le nom d'un script php qui lira et renverra l'image..

Mais pas d'ajax et encore moins l'installation d'un framework pour un truc aussi bête en javascript que de remplacer une image par une autre :evil:
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

13 avr. 2007, 17:54

Aaaah non !! Pas d'ajax pour recharger une image, par pitié !! Pourquoi pas un module VB en .net avec des webservices, et une interface de calcul synchronisée avec la nasa pour savoir avec précision quand se seront écoulés les 10 secondes en heure solaire ? Nan parce que tant qu'à faire une usine à gaz.... :)

Au choix :
- En html : Tu insères une iframe dans ta page, qui ouvre ta page php. Du coup pas de problème pour la recharger toutes les 10 secondes avec un méta placé dans cette dernière. Si tu place ton méta refresh dans ta page principale, c'est toute la page qui est rechargée, sans sauvegarde ni avertissement, et ce quoi que soit en train de faire l'internaute dessus...
- En javascript : Tu utilises la fonction setInterval() de javascript pour changer toutes les 10 secondes la source de l'image (document.ton_image.src = 'nouvelle_image.jpg'), il y a la même fonction rand() en js. Voire si tu veux garder le random en php, tu remplaces le nom de l'image par le nom d'un script php qui lira et renverra l'image..

Mais pas d'ajax et encore moins l'installation d'un framework pour un truc aussi bête en javascript que de remplacer une image par une autre :evil:
hum ... pas tout à fait compris ! sa demande du calme et réflexion ! :) je vais regarder sa et m'accrocher c'est un langage compliquer pour moi la ! :?