affichage aléatoire d'une page.php

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 : affichage aléatoire d'une page.php

par mario » 05 déc. 2005, 21:19

=D>
si tu as choisi la solution de jobherzt, utilise mt_rand plutot que rand

mt_rand -- Génère une valeur aléatoire (meilleure méthode)

c'est la doc ElePHPant qui le dit :D

par cartel » 05 déc. 2005, 21:12

:idea: MERCI :idea:

ça fonctionne parfaitement

par mario » 05 déc. 2005, 21:09

mt_srand((double)(microtime() ^ posix_getpid()));
Note : Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

donc
$i=rand(1,3); //tire un nombre entre 1 et 3 
include("page".$i.".php"); //inclusion de la page $i 
suffit :wink:


parcontre en utilisant le tableau, toutes les pages aléatoires n'ont pas besoin d'avoir le même nom (page1.php, page2.php, page3.php, ....)
$tabPage = array('page1.php','page2.php','page3.php'); // array contenant la liste des pages 
$tabRand = array_rand($tabPage);                       // sort une clé de l'array au hasard 
include($tabPage[$tabRand]);               // On inclus la page aléatoire
bon j'arrête de vendre ma proposition :lol:

par jobherzt » 05 déc. 2005, 20:57

ok, pigé. le code que nous te proposions faisait une redirection vers la page. le code que tu montre ne fonctionne pas non plus, puisque "echo" est une fonction qui affiche une variable de type texte. la bonne fonction a utiliser est "include".

donc :
$page="unePage.php";
echo $page; //pas bon :-)
//affiche tout simplement le texte "unePage.php" al'ecran
//par contre
include($page);
//incluera le contenu de unePage.php dans ta page
donc au final, en reprenant mon code ( marche aussi avec le coup du tableaux ) :
<?
//debut de ta page

//a l'endroit ou tu veux inclure cette page
mt_srand((double)(microtime() ^ posix_getpid())); //initialisation du generateur aleatoire
$i=rand(1,3); //tire un nombre entre 1 et 3
include("page".$i.".php"); //inclusion de la page $i

//reste de ton code
?>

par cartel » 05 déc. 2005, 20:51

le problème c'est que la page aléatoire doit être incluse dans une autre page... alors ya forcement un peu de code avant !

j'avais pensé faire un
<?php
$val = rand(1,3);
echo $val;
?>
pour réccuperer le numéro de la page... et faire mon include avec cette variable mais ça marche pas non plus help :)

par jobherzt » 05 déc. 2005, 20:32

le grand classique : les header doivent etre envoye avant que quoi que ce soit n'est ete ecrit sur la page. moralite : pas le moindre symbole, pas meme un espace ou un retour a la ligne ne doit preceder <?

par cartel » 05 déc. 2005, 19:34

merci à vous deux pr votre aide !

j'ai cette erreur,

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at /home/www/musique/index.php:5) in /home/www/musique/random.php on line 4
je vais essayer de chercher d'ou ca vient

par jobherzt » 05 déc. 2005, 15:30

joli, j'aime bien ! :-)

par mario » 05 déc. 2005, 15:24

Arf désolé
le post ci dessus viens de moi

par Invité » 05 déc. 2005, 15:13

<?php
$tabPage = array('page1.php','page2.php','page3.php'); // array contenant la liste des pages
$tabRand = array_rand($tabPage);                       // sort une clé de l'array au hasard
header("Location: ".$tabPage[$tabRand]);               // Redirection
?>
méthode par les tableaux , plus propre à mon gout ... je reste ouvert à toutes observations :wink:

par jobherzt » 05 déc. 2005, 15:04

tu cree une page dans laquelle tu mets :
<?
mt_srand((double)(microtime() ^ posix_getpid())); //initialisation du generateur aleatoire
$i=rand(1,3); //tire un nombre entre 1 et 3
header("Location:page".$i.".php"); //redirection vers la page $i
?>

affichage aléatoire d'une page.php

par cartel » 05 déc. 2005, 14:34

bonjour messieurs et mesdames,

voici mon probleme : j'ai trois pages (page1.php , page2.php , page3.php) et j'aimerai en afficher une en la selectionnant aléatoirement.

j'ai essayé d'utiliser un fichier mais au lieu de m'afficher la page, ça m'affiche le nom "page1.php" :'(

comment faire svp ?

merci