[php] je ne comprends pas pourquoi ca marche

moicjm -  
 A.Nonymous -
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/>

4 réponses

  1. frenchsting Messages postés 22 Statut Membre 9
     
    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
    1. moicjm
       
      oui, oui, 2 fichiers séparés :
      un pour le HTML et un autre pour le php.
      0
    2. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
       
      Bonjour,

      Pourrais tu marquer ton message d'erreur s'il te plait (avec exactitude)
      0
      1. moicjm > kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention  
         
        le message d'erreur est:
        Notice : undefine index: prenom [chemin] line 21
        0
      2. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857 > kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
      3. moicjm > kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci, mais non. J'ai fait les 2 changements, mais ca ne change rien..
        je comprends pas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        0
  2. DrHelmut Messages postés 1 Statut Membre
     
    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
  3. touriste77 Messages postés 32 Statut Membre 25
     
    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
  4. A.Nonymous
     
    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