Bonjour à tous,
J'ai un petit td à faire pour l'iut info mais je sèche un peu.
Tout d'abord voici la consigne :
"Le but est de faire un formulaire qui permet de faire une multiplication de deux nombres. Le formulaire doit s'afficher avec deux champs texte. Si on appelle ce formulaire directement, c'est tout. Si les deux textes soumis sont des nombres, on affiche le résultat de la multiplication. Sinon, on réaffiche les valeurs entrées en disant le(s)quel(s) n'est pas un nombre."
Mon code :
Puis le html :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?php function validation($a) { if ( ($_GET[0]!= strval(intval($_GET[0]))) || ($_GET[1]!= strval(intval($_GET[1]))) ) { $errors[] = 'au moins un des nombre n\'est pas un entier'; $result['erreur']="<p>au moins un des nombre n\'est pas un entier</p>"; } else { $result->append($_GET[0],$_GET[1]); return $result; } } if (array_key_exists('$a',$_GET)) { $premiernombre="$_GET[0]"; $deuxiemenombre="$_GET[1]"; } else { $result=validation($_GET); // Soumission $premiernombre=$result["$_GET[0]"]; $deuxiemenombre=$result["$_GET[1]"]; if ($result['erreur']) { $text=$result['erreur']; } else { $text="<p>Le résultat de $_GET[0]*$_GET[1] est ".($_GET[0]*$_GET[1])."</p>"; } }
Je tiens à préciser que le prof nous a donné un code existant d'ou partir, il est à modifier par endroits et il faut ajouter du code ailleurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <!DOCTYPE html> <html><head><title>TD 1</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Type" content="text/html;charset=utf8" /></head><body> <h1>Multiplication</h1> <form action="tp1Modif.php" method="$_SERVER[PHP_SELF]"> <?php if (isset($text)) { echo $text;} ?> <p>Le premier nombre est: <input type="text" name="premiernombre" value="<?php echo XXX; ?>" /></p> <p>Le deuxième nombre est: <input type="text" name="deuxiemenombre" value="<?php echo XXX; ?>" /></p> <p><input type="submit" /></p> </form></body></html>
Pour ne pas surcharger mon post je ne le met pas, mais si vous pensez que cela vous serait utile, il suffit de demander.
Enfin voici mon erreur : Notice: Undefined offset: 0 in C:\wamp\www\s3d\tp1Modif.php on line 4
Idem pour les lignes ou j'ai mis des $_GET[0] et $_GET[1].
Je pense que c'est parce qu'au départ rien n'est entré dans les champs, mais je souhaiterai pouvoir afficher mes propres messages d'erreur dans ce cas, et donc surtout faire en sorte que le programme attende que je click sur valider
Une dernière chose : je souhaite utiliser htmlspecialchars pour enlever les values du formulaire html afin que le code n'apparaisse pas dans les champs à l'affichage (j'ai essayer plusieurs solutions mais je suis à chaque fois embêté par les échappements, j'ai pourtant utiliser les anti slash avant les guillemets du premier argument tel que : htmlspecialchars(\"<a href='test'>Test</a>\", ENT_QUOTES); par exemple afin de ne pas être gêné par les guillemet de value="...." mais rien n'y fait).
J'espère avoir été le plus clair possible et que mon problème vaut le coup de main
Partager