$_SESSION['day'] == 0 & == 8 & == 9... agn

Résolu/Fermé
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 - 26 août 2008 à 16:25
 toto - 27 août 2008 à 10:13
Bonjour à tous.
je n'y comprends rien, j'ai une variable de session ($_SESSION['day']) qui est égale a 00, à 08 et à 09 oO
Enfin c'est ce que j'en conclus.
Regardons d'abbord mon code:

( je précise avant: $_SESSION['day'] = $_POST['day'];)

<select name="day" id="day">
   <option value="00" <?php if ($_SESSION['day'] == 00){echo "selected='selected'";} ?>>Jour</option>
   <option value="01" <?php if ($_SESSION['day'] == 01){echo "selected='selected'";} ?>>1</option>
   <option value="02" <?php if ($_SESSION['day'] == 02){echo "selected='selected'";} ?>>2</option>
   <option value="03" <?php if ($_SESSION['day'] == 03){echo "selected='selected'";} ?>>3</option>
   <option value="04" <?php if ($_SESSION['day'] == 04){echo "selected='selected'";} ?>>4</option>
   <option value="05" <?php if ($_SESSION['day'] == 05){echo "selected='selected'";} ?>>5</option>
   <option value="06" <?php if ($_SESSION['day'] == 06){echo "selected='selected'";} ?>>6</option>
   <option value="07" <?php if ($_SESSION['day'] == 07){echo "selected='selected'";} ?>>7</option>
   <option value="08" <?php if ($_SESSION['day'] == 08){echo "selected='selected'";} ?>>8</option>
   <option value="09" <?php if ($_SESSION['day'] == 09){echo "selected='selected'";} ?>>9</option>


et voici le code source par firefox:

<select name="day" id="day">
            <option value="00" selected='selected'>Jour</option>
            <option value="01" >1</option>
            <option value="02" >2</option>
            <option value="03" >3</option>
            <option value="04" >4</option>
            <option value="05" >5</option>
            <option value="06" >6</option>
            <option value="07" >7</option>
            <option value="08" selected='selected'>8</option>
            <option value="09" selected='selected'>9</option>


Help Plz !
A voir également:

8 réponses

Bonjour

Pas si étrange que ça.
un nombre qui commence par 0 en PHP, c'est un nombre en octal (pas qu'en PHP d'ailleurs)
donc 08 et 09 ne sont pas des nombres corrects (en octal, le plus grand chiffre est 7)
ils sont assimilés à 0 dans la comparaison...
0
ça sert dans quel cas de figure ces petites bêtes ? :/
quelles petites bêtes ? les nombres en octal ? ça sert à ceux qui se sont coupé 2 doigts et aux martiens, évidemment !
0
3ou Messages postés 194 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 23 septembre 2009 70
26 août 2008 à 16:30
c quoi le probleme
-1
LeYaude Messages postés 304 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 8 février 2009 46
26 août 2008 à 16:33
Essaie de mettre des " autour des 00, 01... pour les comparaisons. Je ne sais pas trop comment PHP interprète les 00, 01 etc. mais il y a des chances que ça soit des chaines de caractère. Maintenant, pour expliquer exactement ce comportement pour le moins étrange, je ne sais pas trop.
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
26 août 2008 à 16:40
=> c quoi le problème
Simplement que je ne devrai avoir qu'une seule entrée de pré-sélectionnée.

=> Utilise plutot des elseif
apparemment avec les elseif, ça marche pas: surement par-ce qu'il y a du code html entre les les deux:
Parse error: syntax error, unexpected T_ELSEIF in /composants/users/register.php on line 365

je pense que ça pose problème:
<option value="00" <?php if ($_SESSION['day'] == 00){echo "selected='selected'";} ?>>Jour</option>
<option value="01"
<?php elseif ($_SESSION['day'] == 01){echo "selected='selected'";} ?>>1</option>

Et pour précision, j'utilise les SESSION par-ce que l'inscription se fait en 3 étapes. si je n'utilise pas les sessions je suis obliger de réécrire toutes les données enregistrée précédemment dans des input en hidden :S

je vais essayer les guillemets, mais normalement pour des nombres ça fonctionne sans, je vais voir.
-1
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
26 août 2008 à 16:43
Bon bah ça a l'air de marcher avec des guillemets, c'est pas plus c** que ça ^^
Merci beaucoup :)
[Résolu] (je cherche pas à comprendre plus loins :P)
-1
LeYaude Messages postés 304 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 8 février 2009 46
26 août 2008 à 19:10
Merci pour la précision toto, c'est bon à savoir ça ! Donc en fait en remplaçant 01, 02... par 1, 2... ça marcherait aussi ?
-1
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
27 août 2008 à 10:00
Ouais merci pour la précision, je comprends mieux :)
ça sert dans quel cas de figure ces petites bêtes ? :/
-1