Page 1 sur 1

Une page différente suivant l'heure

Posté : 21 août 2009, 11:43
par eLaboile
Bonjour.

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

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 12:24
par FuZZyLine
Bonjour.
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
Salut, voici un model que tu peux exploiter/adapter à tes besoins
<?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
peux sans soucis solutionner ton problème grace à date()

http://www.manuelphp.com/php/function.date.php

Un problème : Moults solutions lol

@+ bon code ;)

PS: Je sais j'aurai pus donner la réponse directement mais... j'aime pas le "tout maché" lol

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 12:58
par eLaboile
En suivant le premier modèle (Le deuxième m'aparaissant bien plus compliqué...) et en l'adaptant j'ai donc ceci :
<?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 4
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 ?

Merci d'avoir répondu.

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 13:39
par FuZZyLine
En suivant le premier modèle (Le deuxième m'aparaissant bien plus compliqué...)
et en l'adaptant j'ai donc ceci :
<?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 4
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 ?
Merci d'avoir répondu.
Re,
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:
$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_)
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") ...
@+ ;)

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 13:44
par FuZZyLine
En suivant le premier modèle (Le deuxième m'aparaissant bien plus compliqué...)
et en l'adaptant j'ai donc ceci :
<?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 4
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 ?
Merci d'avoir répondu.
Re,
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:
$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_)
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") ...
@+ ;)
PS: Oups, tu peux aussi utiliser le temps Unix et la la comparaison peut-être effectuée de maniere
globale mais un brin plus complexe... et plus long ;) http://www.manuelphp.com/php/function.time.php

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 15:12
par eLaboile
J'ai fais comme vous le proposiez. Voici le code :
<?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)

J'ai aussi essayé comme ceci :
<?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 vide

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 15:42
par FuZZyLine
Re,
J'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...
J'aurai pus passer par un test unaire et... rah, ok, allez je le fais lol
<?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 ;)

@+ ;)

PS: J'ai pas testé le dernier paraph mais à vu de nez il marche

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 16:36
par eLaboile
Ca marche à merveille merci beaucoup !

Par contre, il y a une erreur dans ton code, c'est
if (file_exists())
avec un s.

Merci de ton aide.

eLaboile

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 16:48
par FuZZyLine
Ca marche à merveille merci beaucoup !
Par contre, il y a une erreur dans ton code, c'est
if (file_exists())
avec un s.
Merci de ton aide.
eLaboile
Vi, j'avais pas testé le dernier paragraphe, juste jugé à vu de nez mais...
mon "bout de nez" doit être un peu rouillé lol

Le principal c'est que ca marche

@+ ;)

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 17:12
par Superpilou
Pourquoi ne pas utiliser un href(location:index.php) en fonction de l'heure?
Ainsi tu auras une redirection en fonction de l'heure.

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 18:33
par eLaboile
Par curiosité, comment effectuer ceci ? Là je ne vois pas, étant un vrai débutant en la matière

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 19:21
par Superpilou
<?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.

Re: Une page différente suivant l'heure

Posté : 21 août 2009, 19:41
par FuZZyLine
Par curiosité, comment effectuer ceci ? Là je ne vois pas, étant un vrai débutant en la matière
C'est une redirection, autrement dit rien à voir avec include/require, ...etc.
Ca peut, selon les cas, être une solution mais attention à bien garder en tête que les meta
doivent, impérativement, précéder tous accès au serveur et d'autres points:

http://www.php.net/manual/fr/function.header.php

Oublie pas c'est une redirection, hein, pas un chargement ;)

@+ ;)