Une page différente suivant l'heure

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 : Une page différente suivant l'heure

Re: Une page différente suivant l'heure

par FuZZyLine » 21 août 2009, 19:41

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 ;)

@+ ;)

Re: Une page différente suivant l'heure

par Superpilou » 21 août 2009, 19:21

<?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

par eLaboile » 21 août 2009, 18:33

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

par Superpilou » 21 août 2009, 17:12

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

par FuZZyLine » 21 août 2009, 16:48

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

par eLaboile » 21 août 2009, 16:36

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

par FuZZyLine » 21 août 2009, 15:42

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

par eLaboile » 21 août 2009, 15:12

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

par FuZZyLine » 21 août 2009, 13:44

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

par FuZZyLine » 21 août 2009, 13:39

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

par eLaboile » 21 août 2009, 12:58

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

par FuZZyLine » 21 août 2009, 12:24

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

Une page différente suivant l'heure

par eLaboile » 21 août 2009, 11:43

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