Aide pour .php

Résolu
Bonjour,

Je commence tout juste en php... je test un peu faire quelque truc mais là je ne comprend pas ou est mon error:

deux pages .php appel.php et cible.php

appel.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>
Bonjours,<br />
Veuillez taper votre age :
</p>

<form action="cible.php" method="post">
<p>
<input type="text" name="age" /> <input type="submit" value="Valider" />
</p>
</form>
</body>
</html>

résultat:

Bonjours.
Veuillez taper votre age :
[ ] Validé ([ ] zone texte)

cible.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
if ($age <= 12)
{
echo "Salut gamin !";
}
if ($age >= 13)
{
echo "Tu es trop vieu!";
}
?>
</body>
</html>

résultat:

Notice: Undefined variable: age in C:\wamp\www\essai\cible.php on line 9
Salut gamin !
Notice: Undefined variable: age in C:\wamp\www\essai\cible.php on line 13
Configuration: Windows Vista
Safari 530.5

15 réponses

  1. dans cible .php tu ne defini pas ta variable age

    rajoute ça au debut de ton fichier

    $age = isset($_POST['age']) ? $_POST['age'] : null;


    autrement si $_post[age ] existe il prend la valeur de $post[age] sinon il est null
    et comme ça plus de probleme de variable indefinie.

    Meme si age est vide elle existera mais aura la valeur null
    1. Oui voila je comprend mieux (je te rassure je fait des testes pour comprendre... ^^)

      un autre petit truc, regarde sa:

      php:

      <?php
      $age = isset($_POST['age']) ? $_POST['age'] : null;
      if ($age <= 12)
      {
      echo "Salut gamin !";
      }
      if ($age >= 13)
      {
      echo "Tu es trop vieu!";
      }
      if ($age == NULL)
      echo "J'ai demandé ton age!"
      ?>

      J'ai rajouté:

      if ($age == NULL)
      echo "J'ai demandé ton age!"

      quand je met rien j'ai comme résultat

      Salut gamin! J'ai demandé ton age!

      quand je met rien c'est =0?

      Ok..mais comment évité sa?
      1. Salut,

        remplace par

        <?php
        $age = isset($_POST['age']) ? $_POST['age'] : null;
        if ($age <= 12 & $age =! NULL)
        {
        echo "Salut gamin !";
        }
        if ($age >= 13 & $age =! NULL )
        {
        echo "Tu es trop vieu!";
        }
        if ($age == NULL)
        echo "J'ai demandé ton age!"
        ?>

        Tu peux aussi définir une autre valeur pour age si elle est NULL

        ex :

        <?php
        $age = isset($_POST['age']) ? $_POST['age'] : null;
        if ($age == NULL)
        {
        $age="zéro"
        }
        if ($age <= 12)
        {
        echo "Salut gamin !";
        }
        if ($age >= 13)
        {
        echo "Tu es trop vieu!";
        }
        ?>

        je sais pas si cela marche...
        1. met ça

          if(!isset($age) || empty($age)) //si $age est null ou n'existe pas
          {
          echo 'J'ai demandé ton age!';
          
          }
          else
          {
          //tu affiche ce que tu veut quand l'age est entré
          }
          1. Dsl, les opérateurs différent sont erronés pour mon msg et les & aussi :

            
            <?php
            $age = isset($_POST['age']) ? $_POST['age'] : null;
            if ($age <= 12 && $age != NULL)
            {
            echo "Salut gamin !";
            }
            if ($age >= 13  && $age != NULL ) #inutile à prioris!
            {
            echo "Tu es trop vieu!";
            }
            if ($age == NULL)
            {
            echo "J'ai demandé ton age!"
            }
            ?> 
            
            
            1. oui comme sa sa marche nikel

              Mais je voudrait comprendre:
              ta ligne : if ($age >= 13 && $age != NUL ) #inutile à prioris!
              c'est pas plutôt != NULL ?

              même avec cette "error" sa marche c'est sa que je voudrait comprendre.

              Merci à vous!
              1. oui j'ai corrigé, une petite erreur de frappe !

                ça marche car il ne se trouve pas dans ce cas; la première partie de la condition l'élimine de base, donc de toute façon même si il ne comprend pas la deuxième partie de la condition, il tient compte de la première ;) !

                bon courage ;)
                1. Ok donc au faite il fallait dire que NULL et différent à <=12 et à >=13
                  1. non, le premier cas est suffisant car il prend nul comme étant égal à 0 ! Donc, comme 0<=12 il affiche

                    Salut gamin ! J'ai demandé ton age !

                    mais inutile de le préciser pour >=13 car de tout façon, 0 ne peut pas être supérieur à 13 ni égal ... hum !! ^^

                    si d'autre découverte à faire, n'hésite pas, je suis un peu rouillé, il est vrai, mais bon !
                    1. lol oui il explique bien avec des exemples tout sa, mais moi au faite c'est que je veut aller plus vite que les leçons.