Problème php

Résolu
Bonjour,

En débutant mon apprentissage du PHP, avec ce site : https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/911847-les-variables#ss_part_4 , je rencontre un problème que voici : dans notepad++, je tape ceci :


<a href="https://www.om.fr/fr?jour=11&amp;mois=08&amp;annee=1993"></a>

Bonjour !


Vous êtes né le <?php echo $_GET['jour']; ?>, <?php echo $_GET['mois']; ?>, <?php echo $_GET['annee']; ?>.


<p>Faites un autre essai, <a href="appel.php">cliquez ici</a> pour revenir à appel.php</p>


Et j'obtiens ceci :

Bonjour ! Vous êtes né le
Notice: Undefined index: jour in C:\wamp\www\TEST\appel.php on line 6
,
Notice: Undefined index: mois in C:\wamp\www\TEST\appel.php on line 6
,
Notice: Undefined index: annee in C:\wamp\www\TEST\appel.php on line 6
.

Faites un autre essai, cliquez ici pour revenir à appel.php

Pour vous me dire pourquoi et comment éviter ce genre de soucis ? Merci :)
Configuration: Windows XP
Firefox 3.5.3

8 réponses

  1. Contributeur
    <a href="appel.php?jour=11&mois=08&annee=1993">cliquez ici</a>

    avec ce lien, ca devrait mieux marcher
    1. J'obtiens ceci :

      cliquez ici Bonjour ! Vous êtes né le
      Notice: Undefined index: jour in C:\wamp\www\TEST\appel.php on line 6
      ,
      Notice: Undefined index: mois in C:\wamp\www\TEST\appel.php on line 6
      ,
      Notice: Undefined index: annee in C:\wamp\www\TEST\appel.php on line 6
      .

      Faites un autre essai, cliquez ici pour revenir à appel.php

      Quand je clique sur cliquez ici, j'obtiens bien :

      cliquez ici Bonjour ! Vous êtes né le 11, 08, 1993.

      Faites un autre essai, cliquez ici pour revenir à appel.php

      Mais pourquoi y a-t-il les messages d'erreur sur la première page ?
      Merci!
      1. Contributeur
        <?
        if (isset($_GET['jour']))
        { ?>
        Vous êtes né le <?php echo $_GET['jour']; ?>, <?php echo $_GET['mois']; ?>, <?php echo $_GET['annee']; ?>.
        <? }
        else
        echo "T'as pas rentré les paramètres dans l'url";

        ?>
        1. Tu peux m'expliquer à quoi ça sert ? (i am a big noob ^^)
      2. Normall il faut mettre le code PHP pour se connecté a la base de donnée, Je pense...
        1. Contributeur
          dans ta barre d'adresse, tu demandes le fichier php:
          appel.php?jour=11&mois=08&annee=1993

          => c'est le fichier appel.php, et tu lui passes les paramètres jour, mois et année. (paramètres qui ioront dans le tableau $_GET
          donc, dans ton script php tu fais afficher ces paramètres.

          maintenant, toi, quand tu arrives la première fois sur ta page, tu as dans la barre d'adresse:
          appel.php
          sans paramètres. Du coup, quand tu lui dit d'aller prendre $_GET['jour'] il te dis "Undefined index": il a bien trouvé GET, mais il a pas trouvé la ligne 'jour' dedans...

          avec la fonction isset (ou isempty), tu peux voir si $_GET['jour'] existe ou pas... et ainsi éviter l'erreur
          1. Ah, et donc il faudrait le faire en deux pages, si par exemple je programmait un site ?
            Et donc pour les masquer, il faut juste mettre les fonctions isset ?
            1. Contributeur
              si tu faisais un site, il faudrait que tes liens soeint toujours paramétrés
              le isset permet de détecter si la variable existe ou pas. Donc si elle existe, tu mets le code php qui l'utillise, sinon tu mets un message d'erreur par exemple

              généralement, ce genre de page est appellée par un formulaire HTML