Page 1 sur 1

Variable non définie

Posté : 04 mars 2021, 17:14
par Jahrom
Bonjour à tous,

J'ai un petit soucis, je dois afficher le résultat d'une variable ($result) dans le navigateur.
Le soucis c'est que cette variable n'est pas définie , je ne sais pas comment la définir en dehors de la condition sachant quelle utilise 2 autres variables pour donner son résultat.
Pour info il s'agit d'un exercice de création d'une "calculatrice".

Merci d'avance pour votre aide

Voici le code :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>

<HEAD>
<TITLE>Calculatrice</TITLE>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
</HEAD>

<BODY>

<form method="POST" action="Calculatrice.php">
<input name="number1" type="text" placeholder="Renseigner un premier nombre" style="width : 200px">
<select name="operator">
<option value ="plus">+</option>
<option value ="moins">-</option>
<option value ="multiplié par">x</option>
<option value ="divisé par">/</option>
</select>
<input name="number2" type="text" placeholder="Renseigner un second nombre" style="width : 200px">
<input name="Submit" type="submit" value="Calculer">
</form>

<?php

$number1 = isset($_POST["number1"]) ? $_POST["number1"] : '';
$operator = isset($_POST["operator"]) ? $_POST["operator"] : '';
$number2 = isset($_POST["number2"]) ? $_POST["number2"] : '';

if ($number1 && $operator && $number2) {
if (isset ($_POST["submit"])) {
if (is_numeric($number1) && is_numeric($number2)) {
if ($operator == "plus") {
$result = $number1 + $number2;
}
if ($operator == "moins") {
$result = $number1 - $number2;
}
if ($operator == "multiplié par") {
$result = $number1 * $number2;
}
if ($operator == "divisé par") {
$result = $number1 / $number2;
}
}
}
echo "<h1>Le résultat de $number1 $operator $number2 est égal à $result.</h1>";
} else {
echo "Veuillez saisir des valeurs et cliquez sur \"Calculer\" pour obtenir le résultat";
}
?>

Re: Variable non définie

Posté : 05 mars 2021, 10:20
par Spols
En régle genarale, on peut initier une variable en lui donnant une valeur nulle ou une chaine vide
$var = '';
ou
$var = null
mais bien souvent on se contente de savoir si elle est initier ou non vide avec isset ou empty avant de l'utiliser afin de gérer le cas ou elle n'éxiste pas.

mais ce n'est pas ce que je te conseillerai.
regarde ton code, indente le pour mieux comprendre l'ordre des conditions et dis toi que si $_POST['submit'] n'est pas initier, inutile de récupèrer $nombre1, $operator et $nombre2. un autre ordre est possible et résoudra ton problème

Re: Variable non définie

Posté : 05 mars 2021, 15:34
par Jahrom
Merci pour ta réponse. Pour l'indentation, ici c'est un copier-coller donc tout s'ajuste sur la gauche mais j'utilise PhpStorm et c'est effectué dans le logiciel.
J'ai trouvé l'erreur, c'est un problème de majuscule minuscule pour le 'submit'.

//ici Submit avec S majuscule
<input name="Submit" type="submit" value="Calculer">

et

//ici submit avec S minuscule
if (isset ($_POST["submit"])) {

Merci d'avoir pris le temps de répondre :D

Re: Variable non définie

Posté : 05 mars 2021, 15:41
par Saian
Si tu utilises la balise code ou php l'indentation du code est bien conservée. ;)

Re: Variable non définie

Posté : 05 mars 2021, 15:45
par Jahrom
Ok merci pour l'info :wink: