Page aleatoire
J'aimerais que sur ma page d'accueil il y ai une partie qui affiche un contenu different chaque jour.
Dans ce contenu il y aura du texte, une image et un lien. Je dispose de 10 pages differentes qui doivent s'afficher aleatoirement chaque jour.
Est-ce possible de faire ca? si oui, comment faire?
Configuration: Windows Vista Internet Explorer 7.0
42 réponses
La problématique consiste à faire afficher, sur la page d'accueil, un contenu différent chaque jour parmi 10 pages, comprenant texte, image et lien, de manière automatique et récurrente. Des approches basées sur PHP suggèrent d'utiliser la date du jour (par exemple date('j')) pour déterminer quel contenu afficher, puis de transmettre ce chiffre via un paramètre jour dans l'URL. Dans le fichier qui gère le contenu du jour, on peut convertir la valeur du jour en un indice entre 1 et 10 (avec modulo 10), puis afficher le contenu correspondant. En pratique, une solution simple consiste à générer le lien jour avec la date du jour, puis à récupérer ce paramètre sur la page cible pour charger le contenu correspondant.
-
oui j'ai vu merci
et ca marche maintenant!! victoire!!
Un grand merci ;) -
merci bertrand je t'ai envoye mon address msn en MP
-
Merci bertrand mais j'ai ce message d'erreur:
Warning: include($tab[$choix]) [function.include]: failed to open stream: No such file or directory in /var/www/monsite.fr/htdocs/test.php on line 10
Warning: include($tab[$choix]) [function.include]: failed to open stream: No such file or directory in /var/www/monsite.fr/htdocs/test.php on line 10
Warning: include() [function.include]: Failed opening '$tab[$choix]' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/monsite.fr/htdocs/test.php on line 1
La ligne 10 correspond a :
include ('$tab[$choix]'); -
J'ai trouvé un code intéressant:
<?php
$tab[1] = 'Votre texte ou Image #1';
$tab[2] = 'Votre texte ou Image #2';
$tab[3] = 'Votre texte ou Image #3';
$tab[4] = 'etc...';
$nbEntrees = count($tab);
$choix = mt_rand(1,$nbEntrees);
echo $tab[$choix];
?>
Et il fonctionne sur ma page, le seul probleme est que je ne sais pas comment faire pour remplacer par exemple "Votre texte ou image #1" par ma page "contenu1.php"
Si par exemple je mets <A HREF="monsite/contenu1"></A> ca va me faire apparaitre aleatoirement un lien vers ma page contenu1, alors que j'aimerais que ca m'affiche directement ma page 1.
Est-ce possible de faire ca? -
J'ai donc coller le code suivant dans ma page test.php:
<?php
if($_GET['jour'] > 10) {
$_GET['jour'] = $_GET['jour'] % 10;
} else {
$_GET['jour'] = $_GET['jour'] - 1;
}
if($_GET['jour'] == '1') {
echo 'Jour 1';
} elseif($_GET['jour'] == '2') {
echo 'Jour 2';
} elseif($_GET['jour'] == '3') {
echo 'Jour 3';
} elseif($_GET['jour'] == '4') {
echo 'Jour 4';
} elseif($_GET['jour'] == '5') {
echo 'Jour 5';
} elseif($_GET['jour'] == '6') {
echo 'Jour 6';
} elseif($_GET['jour'] == '7') {
echo 'Jour 7';
} elseif($_GET['jour'] == '8') {
echo 'Jour 8';
} elseif($_GET['jour'] == '9') {
echo 'Jour 9';
} elseif($_GET['jour'] == '10') {
echo 'Jour 10';
}
?>
Et je n'ai toujours rien qui s'affiche...
Je pense laisser tomber...
Je vais essayer de trouver un code qui ne prend pas en compte la date mais qui affiche simplement un bloc aleatoire sur ma page des que la page est rafraichie.. penses-tu que c'est faisable? -
Je ne te parles pas de cette page, d'ailleur, oublie "contenu_du_jour.php" !
Ouvre ta page normal et colle le long code PHP la où tu veux voir le texte en fonction du jour.
Ensuite, renommes cette page en .php -
oui
contenu_du_jour.php -
Ta page a bien l'extension .php ?
-
Si tu parles de ca:
<?php
if($_GET['jour'] > 10) {
$_GET['jour'] = $_GET['jour'] % 10;
} else {
$_GET['jour'] = $_GET['jour'] - 1;
}
if($_GET['jour'] == '1') {
echo 'Jour 1';
} elseif($_GET['jour'] == '2') {
echo 'Jour 2';
} elseif($_GET['jour'] == '3') {
echo 'Jour 3';
} elseif($_GET['jour'] == '4') {
echo 'Jour 4';
} elseif($_GET['jour'] == '5') {
echo 'Jour 5';
} elseif($_GET['jour'] == '6') {
echo 'Jour 6';
} elseif($_GET['jour'] == '7') {
echo 'Jour 7';
} elseif($_GET['jour'] == '8') {
echo 'Jour 8';
} elseif($_GET['jour'] == '9') {
echo 'Jour 9';
} elseif($_GET['jour'] == '10') {
echo 'Jour 10';
}
?>
Ca marche pas.. j'ai rien qui s'affiche non plus.. -
Non, tu mets simplement le long code PHP, qui contient "Jour 1", ...
-
Je dois mettre ca?
<?php include('http://monsite/contenu_du_jour.php?jour='.date('j')); ?>
si c'est le cas.. j'ai rien qui s'affiche non plus.. -
De toutes façons, si tu veux directement afficher le contenu, alors mets le code PHP au lieu du code avec file_get_contents.
-
J'ai bien "Jour 9" qui apparait..
-
Que vois-tu en tapant https://www.hugedomains.com/domain_profile.cfm?d=tondomaine&e=com dans ton navigateur ?
-
sans majuscule et avec l'adresse complete je n'ai plus de message d'erreur mais le contenu de la page 10 ne s'affiche pas... j'ai juste une page toute blanche...
-
Sans majuscule à "file_get_contents".
Essaye avec l'url complète :<?php file_get_contents('http://tondomaine.com/contenu_du_jour.php?jour='.date('j')); ?> -
Et je dois le mettre sous cette forme?
<?php
File_get_contents('contenu_du_jour.php?jour='.date('j'));
?>
car si je fais ca j'ai un message d'erreur:
Warning: file_get_contents() [function.file-get-contents]: Unable to access contenu_du_jour.php?jour=10 in /var/www/monsite.fr/htdocs/test.php on line 2
Warning: file_get_contents(contenu_du_jour.php?jour=10) [function.file-get-contents]: failed to open stream: Permission denied in /var/www/monsite.fr/htdocs/test.php on line 2 -
La où tu veux voir le contenu ...
-
Et je dois mettre ca ou exactement?
-
file_get_contents('contenu_du_jour.php?jour='.date('j'));
- 1
- 2
- 3