A voir également:
- Les $_POST et variable en php
- Variable globale php ✓ - Forum - PHP
- Variable environnement php - Articles
- Variable url php - Forum - PHP
- Variable global php - Forum - PHP
- Undefined index variable in php - Conseils pratiques - PHP
3 réponses
yg_be
- Messages postés
- 13932
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
bonjour,
peux-tu poster le contenu de tes fichiers en texte, plutôt que poster des images?
je vois plusieurs anomalies dans ton fichier php:
- lignes 9 à 12, tu utilises tes variables avant de les avoir initialisées dans les lignes 13 à 14
- tes lignes 21, 25, 29, 33 ne servent à rien, tu ne récupères pas le résultat.
ce serait plus logique d'y mettre les lignes 9 à 12.
je te suggère de faire
la prochaine fois, peux-tu également décrire ton problème: message d'erreur, résultat bizarre?
peux-tu poster le contenu de tes fichiers en texte, plutôt que poster des images?
je vois plusieurs anomalies dans ton fichier php:
- lignes 9 à 12, tu utilises tes variables avant de les avoir initialisées dans les lignes 13 à 14
- tes lignes 21, 25, 29, 33 ne servent à rien, tu ne récupères pas le résultat.
ce serait plus logique d'y mettre les lignes 9 à 12.
je te suggère de faire
print_r $_POST;, pour comprendre ce que ton code php reçoit de la page html.
la prochaine fois, peux-tu également décrire ton problème: message d'erreur, résultat bizarre?
yg_be
- Messages postés
- 13932
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
suggestion pour ton select en html:
et le php récupérera dans $_POST['s'] le "value" sélectionnée.
<select name="s"> <option value="+">+</option> <option value="-">-</option> <option value="/">/</option> <option value="*">*</option> </select>
et le php récupérera dans $_POST['s'] le "value" sélectionnée.
Reivax962
- Messages postés
- 3668
- Date d'inscription
- jeudi 16 juin 2005
- Statut
- Membre
- Dernière intervention
- 11 janvier 2021
Bonjour,
Les <option> ne renvoient pas de valeur, seul le <select> en renvoie une.
C'est pour ça que les $_POST['soustraction'], ['addition'], etc. n'existent pas.
Donc il ne faut pas faire $c == $a (resp. $s $d $m), mais $c == '+' (resp. '-' '/' '*')
Et supprimer les lignes $a = $_POST (resp. $s $d $m)
Xavier
Les <option> ne renvoient pas de valeur, seul le <select> en renvoie une.
C'est pour ça que les $_POST['soustraction'], ['addition'], etc. n'existent pas.
Donc il ne faut pas faire $c == $a (resp. $s $d $m), mais $c == '+' (resp. '-' '/' '*')
Et supprimer les lignes $a = $_POST (resp. $s $d $m)
Xavier
QuentinB26
- Messages postés
- 71
- Date d'inscription
- samedi 22 juillet 2017
- Statut
- Membre
- Dernière intervention
- 16 juin 2018
- Messages postés
- 3668
- Date d'inscription
- jeudi 16 juin 2005
- Statut
- Membre
- Dernière intervention
- 11 janvier 2021
Merci de ta réponse ainsi qu'a yg_be,
Mais voila un nouveau message d'erreur la je pense que ca vient de logiciel mais bon le voilà:
Parse error: syntax error, unexpected ')' in /storage/emulated/0/www/Calcul/rs.php on line 14
Et voila la ligne 14
Help me please
Mais voila un nouveau message d'erreur la je pense que ca vient de logiciel mais bon le voilà:
Parse error: syntax error, unexpected ')' in /storage/emulated/0/www/Calcul/rs.php on line 14
Et voila la ligne 14
if ($c == +){
Help me please
Reivax962
- Messages postés
- 3668
- Date d'inscription
- jeudi 16 juin 2005
- Statut
- Membre
- Dernière intervention
- 11 janvier 2021
- Messages postés
- 71
- Date d'inscription
- samedi 22 juillet 2017
- Statut
- Membre
- Dernière intervention
- 16 juin 2018
C'est parce que tu n'as pas mis les guillemets autour de +
if ($c == '+'){
QuentinB26
- Messages postés
- 71
- Date d'inscription
- samedi 22 juillet 2017
- Statut
- Membre
- Dernière intervention
- 16 juin 2018
- Messages postés
- 13932
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 18 janvier 2021
Ahh merci, mais il me remet ca:
Notice: Undefined index: nombres/nombre/s
Et voila le code
Comment cela ce fait t- il?
Notice: Undefined index: nombres/nombre/s
Et voila le code
<!DOCTYPE html> <head> </head> <body> <?php $nb=print_r ($_POST['nombre']); $nbs=print_r ($_POST['nombres']); $c=print_r ($_POST['s']); $rea = $nb + $nbs; $res = $nb - $nbs; $red = $nb / $nbs; $m = $nb * $nbs; if ($c == '+'){ $nb +$nbs; echo $rea; }; if ($c == '-'){ $nb - $nbs; echo $res; }; if ($c == '*'){ $nb * $nbs; echo $m; }; if ($c == '/'){ $nb / $nbs; echo $m; }; ?> </body> </html>
Comment cela ce fait t- il?
jordane45
- Messages postés
- 31082
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 17 janvier 2021
Bonjour,
Première erreur je pense .... le TYPE dans la FORM.
On utilise METHOD et non TYPE.
https://www.w3schools.com/tags/tag_form.asp
Voici ton code corrigé :
fichier rs.php
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Cordialement,
Jordane
Première erreur je pense .... le TYPE dans la FORM.
On utilise METHOD et non TYPE.
https://www.w3schools.com/tags/tag_form.asp
Voici ton code corrigé :
<!DOCTYPE html> <head> <title>Untitled</title> <meta charset="UTF-8"/> <link rel="stylesheet" href="c.css" type="text/css"/> </head> <body> <form method="post" action="rs.php"> <label for="nombre"></label> <input type="text" name="nombre" id="nombre"/> <select name="s"> <option name="addition">+</option> <option name="soustraction">-</option> <option name="division">/</option> <option name="multiplication">*</option> </select> <label for="nombres"></label> <input type="text" name="nombres" id="nombres"/> <input type="submit" value="envoyer" /> </form> </body> </html>
fichier rs.php
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display-errors','on'); //Recupération PROPRE des variables AVANT de les utiliser $nb =!empty($_POST['nombre']) ? $_POST['nombre'] : NULL; $nbs = !empty($_POST['nombres']) ? $_POST['nombres'] : NULL; $c = !empty($_POST['s']) ? $_POST['s'] : NULL; if($nb && $nbs){ switch($c){ case "addition": $rea = $nb + $nbs; break; case "soustraction": $rea = $nb - $nbs; break; case "division": $rea = $nb / $nbs; break; case "multiplication": $rea = $nb * $nbs; break; default: $err = "Merci de choisir un type d'opération "; break; } }else{ $err = "Aucun chiffre n'a été saisi !"; } if(!empty($err)){ echo $err; }else{ echo $rea; } ?>
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Cordialement,
Jordane
voila le code
<!DOCTYPE html>
<head>
<title>Untitled</title>
<meta charset="UTF-8"/>
<link rel="stylesheet" href="c.css" type="text/css"/>
</head>
<body>
<?php
$rea = $nb + $nbs;
$res = $nb - $nbs;
$red = $nb / $nbs;
$m = $nb * $nbs;
$nb=$_POST['nombre'];
$nbs=$_POST['nombres'];
$c=$_POST['s'];
$a=$_POST['addition'];
$s=$_POST['soustraction'];
$d=$_POST['division'];
$m=$_POST['multiplication'];
if ($c == $a) {
$nb +$nbs;
echo $rea;
}
if ($c == $s){
$nb - nbs;
echo $res;
}
if ($c == $m){
$nb * nbs;
echo $re;
}
if ($c == $d){
$nb / $nbs;
echo $m;
}
?>
</body>
</html>
<!DOCTYPE html>
<head>
<title>Untitled</title>
<meta charset="UTF-8"/>
<link rel="stylesheet" href="c.css" type="text/css"/>
</head>
<body>
<form type="post" action="rs.php">
<label for="nombre"></label>
<input type="text" name="nombre" id="nombre"/>
<select name="s">
<option name="addition">+</option>
<option name="soustraction">-</option>
<option name="division">/</option>
<option name="multiplication">*</option>
<label for="nombres"></label>
<input type="text" name="nombres" id="nombres"/>
<input type="submit"></input>
</form>
</body>
</html>
( ! ) Parse error: syntax error, unexpected end of file in /storage/emulated/0/www/Calcul/rs.php on line 36
HELP ME PLEASE!!
<!DOCTYPE html>
<head>
</head>
<body>
<?php
$nb=print_r ['nombre'];
$nbs=print_r ['nombres'];
$c=print_r ['s'];
$a=print_r ['addition'];
$s=print_r ['soustraction'];
$d=print_r ['division'];
$m=print_r ['multiplication'];
$rea = $nb + $nbs;
$res = $nb - $nbs;
$red = $nb / $nbs;
$m = $nb * $nbs;
if ($c == $a) {
$nb +$nbs;
echo $rea;
if ($c == $s){
$nb - nbs;
echo $res;
if ($c == $m){
$nb * nbs;
echo $re;
if ($c == $d){
$nb / $nbs;
echo $m;
?>
</body>
</html>
tu as supprimé les accolades fermantes, je pense que c'est cela qui cause l'erreur "parse".