Faire défiler l'affichage de plusieurs sites

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Faire défiler l'affichage de plusieurs sites

par Invité » 08 sept. 2008, 10:19

Merci beaucoup pour l'idée d'utiliser iframe... c'est la première fois que j'ai un tel besoin.

ça semble marcher impec...
Je donne en cadeau le code (il est probalement un peu discutable)

Code : Tout sélectionner

<?php /* Affiche différentes pages présentes dans l'array $liste Usage : http://127.0.0.1/php/affich/index.php?page=0 */ class pages { private $i; private $liste; public function __construct($liste) { $this->i=0; $this->liste=$liste; } public function __destruct() { //echo "DESTRUCT"; } /* private function set_pages($liste) { $this->liste=$liste; } */ private function set_i($i) { if ($i<=count($this->liste)-1) { $this->i=$i; } else { $this->i=0; } } private function get_next_i() { if ($this->i==count($this->liste)-1) { return 0; } else { return ($this->i+1); } } private function get_previous_i() { if ($this->i==0) { return count($this->liste)-1; } else { return ($this->i-1); } } /* public function goto_next_page() { $this->i=$this->get_next_i(); $this->show(); } public function goto_previous_page() { $this->i=$this->get_previous_i(); $this->show(); } */ private function show() { $url_next= "{$_SERVER['PHP_SELF']}?page=" . $this->get_next_i(); $url_previous= "{$_SERVER['PHP_SELF']}?page=" . $this->get_previous_i(); //echo "Show page n $this->i : {$this->liste[$this->i]}<br>\n"; $url_include = $this->liste[$this->i]; echo "<html> <head> <title>Afficheur</title> </head> <body> <script type=\"text/javascript\"><!-- setTimeout('Redirect()',4000); function Redirect() { location.href = '$url_next'; } // --></script> <!-- Show page n $this->i : {$this->liste[$this->i]}<br> --> <iframe src=\"$url_include\" height=\"100%\" width=\"100%\" frameborder=\"0\"> Alternative text for browsers that do not understand IFrames. </iframe> </body> <!-- <a href='$url_next'>Page suivante<br></a> --> <!-- <a href='$url_previous'>Page pr&eacute;c&eacute;dente<br></a> --> </html>"; } public function goto_page($i) { $this->set_i($i); $this->show(); } } $list = new pages( array( "page0.php", "page1.php", "page2.php?param1=1", "page3.php") ); $page=$_GET['page']; if (!is_numeric($page)) { $page=0; } $list->goto_page($page); ?>

par sadeq » 08 sept. 2008, 09:21

Ok, dans ce cas effectivement il faut programmer et préférablement en javascript, regarde au niveau de la fonction setTimeOut() tu pourra créer une fonction Timer qui boucle tout les n secondes pour recharger un iframe ou un div selon une liste prédéfinies de sites à afficher.

Un peu comme ça :

Code : Tout sélectionner

function animateur() { //Traitement ici : //.... //Bouclage de la fonction animateur setTimeOut("animateur()", 1000 * 60); //=> 1 seconde * 60 = 1 mn }
A voir : http://www.pageresource.com/jscript/jtimeout.htm

par scls19fr » 08 sept. 2008, 07:17

Cette solution ne peut pas convenir pour ce que je demande...

En effet... où place-tu la balise meta.... dans la page qui est actuellement afffichée....

or je n'ai justement pas la possibilité de modifier ce code là (car il peut être sur un serveur sur lequel je n'ai pas la main)

j'ai par exemple 3 pages à visiter
http://www.server1.fr/page1.php
http://www.server2.fr/page2.php
http://www.server3.fr/page3.ph

je ne peux pas modifier page1.php, page2.php ni page3.php

dans mon script defil.php j'ai défini
$liste = array("http://www.server1.fr/page1.php",
"http://www.server2.fr/page2.php",
"http://www.server3.fr/page3.php",
);

c'est à partir de ce script que je dois faire défiler les pages...

(je sais que c'est une demande un peu tordue... mais c'est pour faire un système d'afficheur dynamique avec un grand écran et un navigateur en plein écran (mode kiosk) qui fait défiler
les informations présentes sur plusieurs sites web.)

par sadeq » 07 sept. 2008, 22:16

T'as même pas besoin de javascript ni de php, HTML suffit. La balise suivante fait l'affaire :

Code : Tout sélectionner

<meta http-equiv="refresh" content="5; URL=page_suivante" />
Elle permet de rediriger le navigateur automatiquement après 5 secondes vers l'URL spécifiée.

Plus d'infos? ici : http://cyberzoide.developpez.com/html/meta.php3

Faire défiler l'affichage de plusieurs sites

par scls19fr » 07 sept. 2008, 22:05

Bonsoir,

je souhaite définir dans un script un array qui contient plusieurs url à visiter.
Lorsqu'un utilisateur va sur mon script, je veux que toutes les 5 secondes la page vue soit différente.
(il faut donc un peu de JavaScript).
D'abord il voit la première page puis 5 secondes après la deuxième ... etc et puis on reviens on début.

Mon problème : je ne sais pas comment inclure les pages externes.
include ne fonctionne pas dans le cas d'url externe sur la plupart des config PHP.

Je me demande si je ne devrais pas utiliser des frames (je sais c'est mal).
Ma page aurait alors 2 frames.
Une avec le script PHP chargé du défilement
Une autre avec l'url actuellement visité.

Qu'en pensez-vous ? comment procéderiez-vous ?

Merci d'avance