Gérer les champs vides d'un formulaire

Fermé
lgslgs - 24 janv. 2019 à 20:20
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 24 janv. 2019 à 22:39
Bonjour,
J'ai fait une calculatrice en php mais je n'arrive pas à gérer les champs vides c'est à dire que lorsqu' un champ n'a pas été saisi et que le visiteur soumet le formulaire il y a des erreurs. j'ai essayé de gérer ça mais il n'y a que des erreurs et j'ai l'impression qu'un champ vide est considéré comme étant égal à 0 (en laissant le champ vide, la variable définie pour ce champ prendra la valeur 0).
Voici mon code
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="operation.php">

<label for="valeur1" style="display:block; float:left; width:70px">Valeur 1</label>

<input type="number" name="valeur1" id="valeur1" value="<?php
if (isset($_POST['valeur1'])) echo $_POST['valeur1']; ?>"/><br/><br/>

<label for="operateur" style="display:block; float:left; width:70px">Opérateur</label>
<select name="operateur" id="operateur">
<option value="+" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="+") {
echo "selected";
}?>>+
<option value="-" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="-") {
echo "selected";
}?>>-
<option value="*" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="*") {
echo "selected";
}?>>*
<option value="/" <?php
if (isset($_POST['operateur']) AND $_POST['operateur']=="/") {
echo "selected";
}?>>/
</select><br/><br/>

<label for="valeur2" style="display:block; float:left; width:70px">Valeur 2</label>

<input type="number" name="valeur2" id="valeur2" value="<?php
if (isset($_POST['valeur2'])) echo $_POST['valeur2']; ?>"/><br/>


<input type="submit" name="bSubmit" value="Valider">
</form>
<p>
<?php

if(!is_null($_POST['valeur1']) && !is_null($_POST['valeur2']))
{
$valeur1 = htmlspecialchars($_POST['valeur1']);
$valeur2 = htmlspecialchars($_POST['valeur2']);

if($_POST['operateur'] == "/" && $_POST['valeur2'] == 0)
{
$erreur = "Un nombre ne peut pas être divisé par 0";
}//else{ $resultat = $_POST['valeur1'].$_POST['operateur'].$_POST['valeur2']; }
elseif($_POST['operateur'] == "+")
{
$resultat = $valeur1 + $valeur2;
}
elseif($_POST['operateur'] == "-")
{
$resultat = $valeur1 - $valeur2;
}
elseif($_POST['operateur'] == "*")
{
$resultat = $valeur1 * $valeur2;
}
elseif($_POST['operateur'] == "/" && $_POST['valeur2'] != 0)
{
$resultat = $valeur1 / $valeur2;
}


}else { $erreur = "Vous devez saisir des valeurs"; }
if(isset($erreur)) echo "<font color='red'>".$erreur."<font>";
if(isset($resultat)) echo "Le résultat est : ".$resultat;
?></p>
</body>
</html>
Aidez loi svp

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 janv. 2019 à 22:39
Bonjour,

Déjà... pour poster ton code sur le forum, merci de le faire en utilisant les BALISES DE CODE.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite je t'invite vivement à lire et à appliquer ce qui est indiqué dans ce lien : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
surtout la partie concernant la récupération PROPRE des variables AVANT de les utiliser.

Pour finir, regarde donc comment s'utiliser le floatval() https://www.php.net/manual/fr/function.floatval.php



0