[php] je ne comprends pas pourquoi ca marche

Fermé
moicjm - 24 avril 2007 à 16:24
 A.Nonymous - 18 juil. 2007 à 01:04
Avec ces codes, rien ne s'écrit. Et si j'enleve les isset, là il ya un message d'erreur... Voici les codes: merci d'avance!

HTML:
<form action="traitement.php" method="post">
<p>
<label>Prénom:<input type="text" name="prenom" size="30"/></label> <br/>
<label>Nom: <input type="text" name="nom" size="30"/></label><br/></p></form>

PHP:
<p>Merci <?php if (isset($_POST['prenom'])) { echo $_POST['prenom']; } ?> <?php if (isset($_POST['nom'])) { echo $_POST['nom']; } ?>!<br/>
A voir également:

4 réponses

frenchsting Messages postés 22 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 24 avril 2007 9
24 avril 2007 à 16:36
tu as bien 2 fichiers séparés ?
le premier avec le code html et le 2° avec le code php ?
si ce n'est pas le cas, ça ne peut pas marcher : le php ne peut pas deviner ce qui a été saisi...
0
oui, oui, 2 fichiers séparés :
un pour le HTML et un autre pour le php.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
24 avril 2007 à 17:46
Bonjour,

Pourrais tu marquer ton message d'erreur s'il te plait (avec exactitude)
0
moicjm > kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
24 avril 2007 à 18:27
le message d'erreur est:
Notice : undefine index: prenom [chemin] line 21
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
24 avril 2007 à 19:08
Et si tu remplace :
<label>Prénom:<input type="text" name="prenom" size="30"/></label> 


par :
<label>Prénom:</label><input type="text" name="prenom" size="30"/> 


ca donne quoi ?

Aussi, renseigne le champ 'id' de tes input avec pour identifiant le name, ex : <input type='text' id='prenom' name='prenom' >

0
moicjm > kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
24 avril 2007 à 21:27
Merci, mais non. J'ai fait les 2 changements, mais ca ne change rien..
je comprends pas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
DrHelmut Messages postés 1 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 17 juillet 2007
17 juil. 2007 à 17:43
alors :

- le faire en deux fichiers (pas fforcéments html et php, peuvent être tous deux php) pourquoi pas... c'est plus propre quand il y a beaucoup de code (MVC...) mais sinon c'est carrément pas indispensable !

- isset($var) teste si la variable $var EXISTE, ça ne teste pas sa valeur !!
pour tester qu'une variable est vide, tu peux tester comme cela : if( $var == "") {...} c'est la chaine vide. Et en php5, tu peux tester plus proprement encore : if($var == null) {...}

DONC :

-c'est tout à fait normal que ton prog plante si tu retires "isset" car l'interpréteur php lit une variable qui n'existe pas (pas déclarée)

- de plus la balise input n'est pas censée s'imbiquer dans la balise label, qui ne sert d'ailleurs pas à grand chose si tu ne lui associes pas de touche d'accès....

-pour le cas ou; teste la totalité de tes variables POST :

forEach($_POST as $key => $value} {
echo "clé : ".$key." | valeur : ".$value."<br/>";
}
0
touriste77 Messages postés 32 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 29 octobre 2009 25
18 juil. 2007 à 00:16
salut,
ce bout de code à l'air de marcher. je l'ai copié tel quel, et ca marche : je mets un nom et un prenom, il m'affiche Merci prenom nom ! et si je mets rien il affiche juste Merci ! et j'ai pas d'erreur.
ton problème est peut-être lié avec ce que tu as écrit plus haut dans ton code (la partie que tu n'as pas montrée).
bonne continuation.
0
La fonction 'isset' de Php est un test sur l'existence d'une variable.
La portion de code suivante signifie :
-------------------------------
<?php
if (isset($_POST['prenom'])) { // Si la variable $_POST['prenom'] existe
echo $_POST['prenom']; // alors afficher la valeur de $_POST['prenom']
}
?>
-------------------------------

Si ça marche sans faire d'erreur, c'est grâce justement à la fonction 'isset' ...
(Lire le manuel Php de temps en temps ne ferait pas de mal (rtfm comme certains diraient ;) ))
0