Salut, voici un model que tu peux exploiter/adapter à tes besoinsBonjour.
Je cherche actuellement à ajouter une fonctionnalité à mon site. J'aimerais que suivant l'heure, la page d'accueil soit différente. Par exemple : On arrive sur "index.php' -> Si il est entre 00:00 et 00:30 on est envoyé automatiquement sur "error.html" et le reste du temps sur "index.html"
Je ne peux utiliser l'URL Rewriting étant chez Free.
Merci d'avance.
eLaboile
<?php
$heure = (int)date('h');
$page = "wakeup.htm";
if ($heure >= 20 && $heure < 8) $page = "dodo.htm";
?>
ou celui la<?php
$heure = (int)date('h');
$name = Array("minuit", "1am", "2am"); // A toi de compléter le tableau
$page = $name[$heure].".htm";
?>
Comme tu le constates plus haut ca ne fait pas tout à fait ce que tu veux mais tu<?php
$heure = (int)date('H:i:s');
$page = "index.html";
if ($heure >= 00:00:00 && $heure < 00:29:59) $page = "error.html";
?>
Mais la page m'affiche ceci :
Code : Tout sélectionner
Parse error: syntax error, unexpected ':' in /mnt/143/sda/4/1/.../index.php on line 4Re,En suivant le premier modèle (Le deuxième m'aparaissant bien plus compliqué...)
et en l'adaptant j'ai donc ceci :Mais la page m'affiche ceci :<?php $heure = (int)date('H:i:s'); $page = "index.html"; if ($heure >= 00:00:00 && $heure < 00:29:59) $page = "error.html"; ?>Je comprends d'où vient le problème, mais si les ':' ne sont pas acceptés, comment faire pour que le modèle "H:i:s" soit bien suivi ?Code : Tout sélectionner
Parse error: syntax error, unexpected ':' in /mnt/143/sda/4/1/.../index.php on line 4
Merci d'avoir répondu.
$H = (int)date('H');
$M = (int)date('i');
if ($H == 0 && ( $M >0 | $M < 30) )
Y a plus compexe si tu souhaites une comparaison de type 00:00:00 (par exemple via les preg_)if (date('H:i:s') == "00:00:00") ...
@+ PS: Oups, tu peux aussi utiliser le temps Unix et la la comparaison peut-être effectuée de maniereRe,En suivant le premier modèle (Le deuxième m'aparaissant bien plus compliqué...)
et en l'adaptant j'ai donc ceci :Mais la page m'affiche ceci :<?php $heure = (int)date('H:i:s'); $page = "index.html"; if ($heure >= 00:00:00 && $heure < 00:29:59) $page = "error.html"; ?>Je comprends d'où vient le problème, mais si les ':' ne sont pas acceptés, comment faire pour que le modèle "H:i:s" soit bien suivi ?Code : Tout sélectionner
Parse error: syntax error, unexpected ':' in /mnt/143/sda/4/1/.../index.php on line 4
Merci d'avoir répondu.
Enfait ton action correspond à (en gros) additionner et comparer une liste composé
de chiffre et caractères. Et ca, c'est pas possible, ca écquivaut à comparer
torchons et serviettes[*].
Te faut séparer les éléments puis comparer de maniere unique chaque élément.
Est-ce que les [heures sont = à 0] ET [0 > minutes < 30] ce qui peut s'écire ainsi:
Y a plus compexe si tu souhaites une comparaison de type 00:00:00 (par exemple via les preg_)$H = (int)date('H'); $M = (int)date('i'); if ($H == 0 && ( $M >0 | $M < 30) )
mais peu d'intérêt. ...en tout cas de mon point de vu
[*] Bien que tu puisses faire ceci@+if (date('H:i:s') == "00:00:00") ...
<?php
$H = (int)date('H');
$M = (int)date('i');
$page = "index.html";
if ($H == 0 && ( $M >0 | $M < 30) ) $page = "error.html";
?>
Etrangement, la page en question reste immuablement vide. (index.php)<?php
$H = (int)date('H');
$M = (int)date('i');
if ($H == 0 && ( $M >0 | $M < 30) ) $page = "error.html";
else $page = "index.html";
?>
Il faut aussi savoir que ma page .php ne contient que ça et que j'ai quel que soit le code une page videJ'ai fais comme vous le proposiez. Voici le code :
[...]
Il faut aussi savoir que ma page .php ne contient que ça et que j'ai quel que soit le code une page vide
<?php
// Bloc qui marche
//
//$h = date('H');
//$m = date('i');
//$page = "index.php";
//
//if ($h == 0 && ($m > 0 && $m < 30)) $page = "toto.php";
// Simulation heure minte
$h = 0;
$m = 15;
$page = "index.php";
if ($h == 0 && ($m > 0 && $m < 30)) $page = "toto.php";
echo $h." // ".$m."<br>";
echo $page."<br>";
$h = 1;
$m = 15;
$page = "index.php";
if ($h == 0 && ($m > 0 && $m < 30)) $page = "toto.php";
echo $h." // ".$m."<br>";
echo $page."<br>";
$h = 0;
$m = 31;
$page = "index.php";
if ($h == 0 && ($m > 0 && $m < 30)) $page = "toto.php";
echo $h." // ".$m."<br>";
echo $page."<br>";
$h = 1;
$m = 15;
$page = "index.php";
if ($h == 0 && ($m > 0 && $m < 30)) $page = "toto.php";
echo $h." // ".$m."<br>";
echo $page."<br>";
?>
Voili, voilou... Ca marche nickel, le code est (biensur) crade mais bon...<?php
[...]
$h = date('H');
$m = date('i');
// A toi d'assigner le nom réèl des pages...
//
$page = ($h == 0 && ($m > 0 && $m < 30)) ? $page = "dodo.php" : $page = "wakeup.php";
// L'emplacement de la page... utilité: à toi de voir...
//
$directory = "./pages/";
// L'appel de la page
//
if (file_exist("./".$page)) require_once($directory.$page);
else die("File not found !");
[...]
?>
Souviens-toi que ce n'est qu'une piste, la solution parfaite viendra de toi Vi, j'avais pas testé le dernier paragraphe, juste jugé à vu de nez mais...Ca marche à merveille merci beaucoup !
Par contre, il y a une erreur dans ton code, c'estavec un s.if (file_exists())
Merci de ton aide.
eLaboile
<?php
//fontion header pour la redirection
header('location: test.php');
//la on redirige vers la page test
?>
Par contre il faut mettre du header avant du html sinon il y a conflit.C'est une redirection, autrement dit rien à voir avec include/require, ...etc.Par curiosité, comment effectuer ceci ? Là je ne vois pas, étant un vrai débutant en la matière