Page 1 sur 1

changement d'url avec temps entre les changements

Posté : 20 mai 2012, 00:43
par jacques348
Bonjour à tous,

Etant vraiment débutant en programmation (jquery/javascript), je dois maintenant mettre aussi les mains dans le merveilleux cambouis :) du php et je bloque.

j'ai :
une base de donnée de lien de page html

j'aimerai :
une page avec une iframe dont l'url appelée change automatiquement tout les x secondes.
cette variable x est en relation avec la page chargée.

C'est pour une projection de textes, de vidéos, de sons... et il faut que le public ait le temps de lire/voir/écouter le contenu (si ça n'était rien que sur internet, je mettrai tout simplement un bouton). Je précise que dans mon cas (pour certains contenus) la fonction include ne marche pas.

ce que j'ai réussi à faire pour le moment (qui n'est pas ce que je voudrais, mais on fait ce que l'on peut) :

1. une page php avec un random
<?php

$pagesArray = array(

	"page1", 
	"page2", 
	"page3";
	//etc
$randNum = rand(0, count($pagesArray)-1);
include($pagesArray[$randNum]);

?>

<!DOCTYPE html>

<head>
</head>

<body>

	<iframe width="640" height="360" src=<?php echo $pagesArray[$randNum] ?>></iframe>

</body>
</html>
2. une page html qui appelle la page php dans une iframe avec un rafraîchissement tous les x secondes (fixe)
<!DOCTYPE html>
<head>
<script languaje="javascript">

	function reloadIt() {
		frm=document.getElementsByName("frame1")[0]; //iframe object
		frm.src=frm.src; //new src.
		setTimeout("reloadIt()",18000); //time
	}
</script>

</head>

<body onload="reloadIt()">

<div id="iframe1"><iframe name="frame1" src="zapping.php" frameborder="0" scrolling="no" height="360px" width="640px"></iframe></div>

</body>
</html>
Le temps de rafraîchissement est donc fixe. J'imagine que je pourrais peut-être arriver à insérer une variable en js , mais je me dis que ça serait tout de même mieux de tout faire ne php. J'ai essayé de trouver par moi-même, mais là, je commence à tout mélanger je crois. Si quelqu'un pouvait me filer un petit coup de pouce, j'en serais vraiment très heureux.

Merci

Re: changement d'url avec temps entre les changements

Posté : 22 mai 2012, 21:02
par jacques348
un petit up... merci

Re: changement d'url avec temps entre les changements

Posté : 22 mai 2012, 21:37
par xTG
C'est donc pour faire une présentation de type powerpoint mais en HTML ?
Il existe déjà des outils faisant cela.
En voici un parmi tant d'autres : http://slides.html5rocks.com/#landing-slide

Mais après je vois pas tellement l'intérêt en fait...
On fait quelque chose bien plus rapidement sur un logiciel dédié à ça.

Sinon concernant ton idée de tout faire en PHP... Ce langage étant serveur cela va poser un sacré problème. ;)

Re: changement d'url avec temps entre les changements

Posté : 22 mai 2012, 22:35
par jacques348
:) projection + web + interactivité live via kinect... je pourrais aussi le coder flash que je connais beaucoup mieux, utiliser wjs (logiciel de webjockey) ou construire quelque chose avec max msp. Mais là, j'aurai vraiment besoin que cette partie soit en php. c'est un premier jet pour une performance artistique. Je ne suis pas tout seul d'habitude. Malheureusement là, j'ai pas le budget pour ce projet (pour l'instant, c'est pq je présente une étape) et puis ce que j'apprends me plaît énormément.

http://slides.html5rocks.com utilise apparemment html5 + css + js... c'est en fait ce que j'ai déjà codé moi-même.

Par contre, je ne vois pas bien le problème que ça pourrait poser à mon serveur (qui m'appartient, que je gère et qui sera pratiquement dédié à cela le jour de la performance), il en a vu bien d'autres et des plus compliquées...

voilà. j'espère que c'est plus compréhensible. merci.

Re: changement d'url avec temps entre les changements

Posté : 23 mai 2012, 09:22
par xTG
Non ce que je voulais dire c'était en rapport avec :
mais je me dis que ça serait tout de même mieux de tout faire ne php
Sinon j'ai pas trop compris pourquoi tu charges deux fois ta page... Une foi en include et une autre fois en iframe.
C'est la même chose. O_o
la fonction include ne marche pas.
Quand cela ne fonctionne pas il y a un message d'erreur sur la page ou dans les logs pour comprendre d'où vient ton erreur.

Enfin le mieux pour faire ce que tu veux est encore d'utiliser une seule page (pas de iframe ou autre, juste un fichier).
Tu as ton bric à brac de PHP qui défini quel fichier et quel temps d'affichage associé à ce fichier.
Tu l'inclus, et tu ajoutes aussi dans la balise head un meta de redirection chronométré (prenant en compte ta variable de temps).

Re: changement d'url avec temps entre les changements

Posté : 23 mai 2012, 15:37
par jacques348
Tout à fait d'accord. on oublie l'iframe et l'include, comme je l'ai dit, j'ai mélangé pas mal.
J'ai changé ça depuis. J'ai maintenant tout simplement.
<?php header('Refresh: 18'); ?>

<?php
     $pagesArray = array(
          // ici mes url
      );
$randNum = rand(0, count($pagesArray)-1);
include($pagesArray[$randNum]);
?>
mais, comme je l'ai dit, c'est justement pour la variable temps que j'ai un problème. Je ne parviens pas à la construire ni à l'injecter dans le refresh. Je vois ce qu'il faut faire, mais je n'arrive pas à l'écrire. Peut-être le plus simple serait de mettre tout dans le header avec une variable temps et une variable url qui lui est associée. Je ne sais pas, j'ai hâte de finir ce projet et de me faire une bonne formation php depuis le début, parce que là, je suis un peu perdu, mais surtout au niveau de la syntaxe.

Re: changement d'url avec temps entre les changements

Posté : 23 mai 2012, 16:13
par xTG
Et si je te montres ceci, cela te donne-t-il une idée :
$pagesArray = array(
  0 => array( 'url' => 'page1.php', 'time' => 18),
  1 => array( 'url' => 'page2.php', 'time' => 26),
  // ...
);

Re: changement d'url avec temps entre les changements

Posté : 24 mai 2012, 20:50
par jacques348
Ca m'a donné plein d'idées... et aucune solution encore.
mais :
tutoriaux tableau imbriqués (boucles imbriquées, récupérer une valeur dans tableaux imbriqués...) : fait. très intéressant.
c'est maintenant au niveau du random que je nage... et de comment insérer les bonnes variables où... mais je ne désespère pas. merci

Par contre j'ai réussit à faire ça avec le code précédent en employant un echo sur le refresh html
"content=\"temps;URL=page1""
"content=\"temps;URL=page2""
// etc...
le random php et
<meta http-equiv="refresh" <?php echo $pagesArray[$randNum] ?>>
C'est absolument dégueulasse comme méthode, ça va en faire vomir quelques uns, mais ça marche. bref. on fait ce qu'on peut...

Re: changement d'url avec temps entre les changements

Posté : 24 mai 2012, 22:54
par xTG
En quoi cela serait dégueulasse ? PHP est un langage fait pour gérer des templates à la base.
Donc rédiger des morceaux de code HTML c'est son job.

Re: changement d'url avec temps entre les changements

Posté : 28 mai 2012, 01:48
par jacques348
Bon voilà... pour ceux qui chercheraient comme moi.
Voici mon code php/html pour un auto refresh / reload d'iframe avec random d'url et de temps correspondant (on peut sans doute faire mieux, mais je n'ai rien trouvé, donc je le poste, ça peut servir).
j'ai rajouté une donnée supplémentaire dont j'avais besoin. je la mets pour les newbies comme moi (je ne m'en sers pas ici dans mon exemple, mais ça éclaire).
<?php
$pagesArray = array(
	 
	array("url1","temps1", "autre donnée1"),
	array("url2","temps2", "autre donnée2"),
	array("url3","temps3", "autre donnée3"),
	array("url4","temps4","autre donnée4"), 
	// etc. j'ai mis des double quotes au données parce que pour certaines de mes données ça ne marchaient si je ne les mettais pas. pour d'autres oui. je ne sais pas très bien pourquoi.
);
	
$randNum = rand(0, count($pagesArray)-1);

echo $pagesArray[$randNum][0] . " " . $pagesArray[$randNum][1] . " " . $pagesArray[$randNum][2]; //juste pour vérifier que ça sort bien nos données

?>

<!DOCTYPE html>

<head>

	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<meta http-equiv="refresh" content="<?php echo $pagesArray[$randNum][2] ?>"> <!-- pour le refresh de la page à un temps donné-->

	<title></title>

</head>

<body>

	<iframe src="<?php echo $pagesArray[$randNum][0] ?>"></iframe> <!-- pour l'url -->

</body>

</html>
Je ne suis pas parvenu à faire ça avec cette écriture-là.
Et si je te montres ceci, cela te donne-t-il une idée :
$pagesArray = array(
  0 => array( 'url' => 'page1.php', 'time' => 18),
  1 => array( 'url' => 'page2.php', 'time' => 26),
  // ...
);
mais je n'ai pas vraiment eu le temps de chercher. j'essaierai ça plus tard.

merci à toi xTG.

++

Re: changement d'url avec temps entre les changements

Posté : 28 mai 2012, 08:37
par xTG
<iframe src="<?php echo $pagesArray[$randNum][0] ?>"></iframe> <!-- pour l'url -->
Pourquoi ne pas faire un include ? Une balise iframe c'est super moche ça par contre. ;)