Probléme avec une variable

Fermé
kev693 - 6 oct. 2009 à 16:33
 kev693 - 6 oct. 2009 à 17:02
Bonjour,

j'ai comme un soucis avec une variable voici mon code :

<?php
$_POST['trois'] = $_POST['attaque']/$_POST['deux'] ;
if ( isset($_POST['attaque']) && isset($_POST['deux']) && is_int($_POST['attaque']) && is_int($_POST['deux'])) {
echo 'attaque final: '.$_POST['trois'].'<br>'."\n";

}
else {
echo 'vous n\'avez pas rentré un chiffres !!! ' ;
}
?>

maintenant le probléme que j'ai c'est que quand j'essaye la page sa passe directement a else et si je met +1-1
a la suite de $_POST['trois'] = $_POST['attaque']/$_POST['deux'] +1-1; voila comme ceci la je ne passe pas a else mais par contre si ej rentre a il me donnera un chiffre et je ne sais pas comment faire si vous pouver m'aider merci d'avance ^^.

4 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
6 oct. 2009 à 16:38
Ton code n'est pas très logique, tu te sers de $_POST['attaque'] et $_POST['deux'] et ensuite tu vérifies que ces variables existent.

Après les valeurs postées par POST ne peuvent pas être de type entier, pour cette raison que tu rentres dans ton else.

Pour vérifier qu'une variable est un nombre, sers toi de ctype_digit().
0
en faite j'ai pas préciser toute ma page mais juste avant je fait sa :

<div class="form" >
<form method="post" action="">
<p>
<label for="attaque">un:</label>
<input type="text" name="attaque" id="attaque" />
</p>*
<p>
<label for="deux">deux:</label>
<input type="text" name="deux" id="deux" />
</p>
<p> <input type="submit" value="essayer" />
</p>

</form></div>

<div class="repform" >

est les deux variable sont a l'interieur d'un form ^^ et je viens d'essayer avec ctype_digit mais il m'annonce cette erreur si je le force sur else en rentrant des lettres
Warning: Division by zero in C:\wamp\www\essai jeu\new essai.php on line 25
merci de votre aide .( je debute )
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
6 oct. 2009 à 16:55
De cette façon.

if( isset($_POST['attaque'], $_POST['deux']) ) {
    if( ctype_digit($_POST['attaque']) && ctype_digit($_POST['deux']) ) {
        if( $_POST['attaque'] != 0 ) {
            echo 'attaque final: '. ($_POST['attaque']/$_POST['deux']) . '<br>'."\n"; 
        }
        else
             echo 'L\'attaque ne peut valoir 0';
    }
    else
        echo 'vous n\'avez pas rentré un chiffres !!! ' ;
} 
0
Merci avec un grand M vraiment trop fort ^^ . j'apprend tout seul avec des livres et internet alors j'ai un peu de mal des fois et encore merci .
0