Jump to content
MaximeL

If, elseif: besoin d'aide

Rate this topic

Recommended Posts

Je réalise le site d'un établissement et je souhaiterais afficher une image (ouvert ou fermé) qui changerait en fonction des horaires d'ouverture.

J'utilise donc un "<img src="/image.php">" avec le code suivant dans image.php:

<?
header("Content-type: image/gif");

$date = date("D");
$heure = date("Hi");

if($date != Sat && $date != Sun && $heure < 830)
$image = "img/close.gif";
elseif($date != Sat && $date != Sun && $heure >= 830 && $heure < 1830)
$image = "img/open.gif";
elseif($date != Sat && $date != Sun && $heure >= 1830)
$image = "img/close.gif";
elseif($date = Sat && $heure < 830)
$image = "img/close.gif";
elseif($date = Sat && $heure >= 830 && $heure <1230)
$image = "img/open.gif";
elseif($date = Sat && $heure >= 1230)
$image = "img/close.gif";
elseif($date = Sun)
$image = "img/close.gif";

readfile($image);
?>

Les horaires sont les suivants:

du lundi au vendredi, ouverture de 8h30 à 18h30

le samedi, ouverture de 8h30 à 12h30

et fermeture le dimanche

Le code fonctionne la semaine mais le weekend j'ai des soucis...

Pourriez-vous me donner votre avis? Je débute vraiment en PHP :blush:

Merci d'avance pour votre d'aide!

Bonne soirée

Share this post


Link to post
Share on other sites

bonjour :)

essayez tout d'abord de modifier les "=" dans les conditions. En effet, pour vérifier une égalité, vous devez mettre un double égal (==) ; auquel cas c'est de la redéclaration de variable.

Ensuite, remplacez Sat par "Sat". En effet, PHP comprends cette méthode mais peut engendrer des soucis, comme par exemple un undefined index ou encore faire échouer la vérification.

ensuite, je ne peux que conseiller d'indenter le code :)

j'ai aussi réalisé une boucle plus légère, qui devrait normalement fonctionner.


if($heure > 830 && $heure < 1830) // vérif si heure entre 8h30 et 18h30
{
// on est bien entre 8h30 et 18h30.
if( ($date == "Sat" && $heure > 1230) || $date == "Sun") // on est Samedi et Il est plus de 12h30 ? ou alors on est dimanche... on est fermés !
{
$image = "img/close.gif";
}
else // on est donc pas dimanche, ni samedi après midi... on est donc soit en semaine, soit samedi matin. On est ouverts !
{
$image = "img/open.gif";
}
}
else // heure entre 18h30 et 8h30 (donc hors ouverture)
{
$image = "img/close.gif";
}

Normalement ça fonctionne... Je n'ai pas testé, j'ai fais sur le tas :)

n'hésitez pas a me donner un retour :P

bonne soirée !

Share this post


Link to post
Share on other sites

D'autre part, il reste préférable d'effectuer ce traitement dans le fichier de template (html) pour éviter d'avoir à faire un readfile, mais c'est accessoire :)

Share this post


Link to post
Share on other sites

Bonjour!

Merci pour votre aide :thumbsup:

J'ai bien remplacé mes Jour en "Jour" et doublé mes =.

Pour le moment ça fonctionne, j'attends de voir ce que ça donnera le weekend :).

Sinon Aenoa j'ai bien testé le nouveau code, plus léger, mais malheureusement l'image ne s'affiche pas :(.

Bonne journée

Share this post


Link to post
Share on other sites

il faut juste remplacer tes if par ce que j'ai mis. Ce qu'il y a avant tes if et après tes elseif tu doit le laisser :)

Share this post


Link to post
Share on other sites

<?
header("Content-type: image/gif");

$date = date("D");
$heure = date("Hi");

if($heure > 830 && $heure < 1830)
{
if( ($date == "Sat" && $heure > 1230) || $date == "Sun")
{
$image = "img/close.gif";
}
else
{
$image = "img/open.gif";
}
}
else
{
$image = "img/close.gif";
}

readfile($image);
?>

Comme ça? C'est ce que j'ai fais :)

J'obtiens un Warning:

<br />

<b>Warning</b>: readfile(/img/open.gif): failed to open stream: No such file or directory in <b>/homez.441/pharmali/www/image2.php</b> on line <b>23</b><br />

Share this post


Link to post
Share on other sites

Le warning ne viens pas du script en lui même qui est bon, mais d'un autre problème, et il me semble que le message affiché est assez clair non?

Share this post


Link to post
Share on other sites

il faut juste remplacer tes if par ce que j'ai mis. Ce qu'il y a avant tes if et après tes elseif tu doit le laisser :)

Ca marche, désolé! ;)

Merci encore pour votre aide

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...