Trouvez l'erreur ...

Nouveau WRInaute
Salut, j'ai fais un petit formulaire d'ajout de message, fermé de 3h à 16h, car je n'ai pas de modérateur dispo pendant ces horraires, néammoins, le souci est que je n'arrive pas à ce le système sois fermé entre 3h et 16h, il est fermé tout le temps...
Voici mon code, si quelqu'un voit l'erreur :)

$aff=1;
$tim=date("H");
if($tim>=03 || $tim<=16){
$aff=2;
}
$TableRep8=mysql($database,"SELECT * FROM secure_membres WHERE pseudo='$pseudo'");
$tot8=mysql_NumRows($TableRep8);
if ($tot8){
$verifmodo = mysql_result($TableRep8, 0, "nivalop");
if ($verifmodo=="oui"){
$aff=1;
}
}
if ($aff=="1"){
$joo='';
echo "<small>Ecris ton message</small>\n";
echo "<form action=\"secure.php\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"HANDLER\" value=\"".$HANDLER."\" />\n";
echo "<input type=\"text\" name=\"dice\" maxlength=\"160\" size=\"8\">\n";
echo "<input type=\"hidden\" name=\"session\" value=\"".$session."\" />\n";
echo "<input type=\"hidden\" name=\"hmac\" value=\"".$hmac."\" />\n";
echo "<br><input type=\"submit\" class=\"secure_gift\" value=\"Envoyer\">\n";
echo "</form>\n";
}
if ($aff=="2"){
echo"<small>Désolé, ce service est fermé de 3h à 16h</small>";
}
?>

Voila, le fragment de code qui je pense pose souci,
$aff=1;
$tim=date("H");
if($tim>=03 || $tim<=16){
$aff=2;
}

Mais je ne vois justement pas le soucis, le formulaire devrait bien s'afficher entre 16h et 3h du matin non ? Ce n'est pas le cas :cry: Le message affiché entre 3h et 16h continue de s'afficher...
Merci par avance pour votre aide.
 
WRInaute passionné
donc ta condition if($tim>=03 || $tim<=16) est toujours vrai:

1 -> inferieur a 16
2-> inferieur a 16
3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 -> superieur ou egal a 3

essaye if($tim>=03 && $tim<=16)
 
Nouveau WRInaute
Merci pour vos réponses, j'ai essayé toutes vos solutions, dont la derniere, aux premiers abords ca semble fonctionner, mais quand je veus tester (faire comme site on ne pouvais pas écrire dans cette tranche horraire)
$aff=1;
$tim=date(g);
if($tim>=3 && $tim<=1){
$aff=2;

On vois quand meme le formulaire apparaitre au lieu du message d'erreur :(
Un si petit truc aussi casse tete, j'en reviens pas :?
 
Nouveau WRInaute
Ouai je sais ;) avec 16h ca s'affiche et donc jusque la tout est normal, mais même en remplacant 16 par 1 ca s'affiche à la place du message d'erreur :(
 
WRInaute passionné
bestmax a dit:
Ouai je sais ;) avec 16h ca s'affiche et donc jusque la tout est normal, mais même en remplacant 16 par 1 ca s'affiche à la place du message d'erreur :(
c normal ta condition est toujours fausse, tu lui demande d'etre plus grand que 3 et plus petit que 1 ...
 
Nouveau WRInaute
Oui, que je suis bête, merciiiii en tout cas à tous pour votre aide, j'espère que ca servira à quelques programmeurs pas doué en Maths ;) comme c'est mon cas
 
Discussions similaires
Haut