IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Undefined variable !


Sujet :

Langage PHP

  1. #1
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut Undefined variable !
    Bonjour, J'ai le probleme suivant:
    j'ai un formulaire qui contient de champ text : lanrgeur et longueur, et j'ai une variable $surf qui calcule la surface:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form action="" method="post">
    <?php  if(isset($_POST['largeur'])){?>
     
                  <?php $surf=$_POST['largeur']*$_POST['longueur']; ?>
                  <label for="nom" class="libel col-lg-6">Surface:</label><div class="form-group col-lg-6"><input type="text" class="form-control" name="surface" value="<?php echo $surf?> M²"></div>
    <?php }else{?>
                  <label for="nom" class="libel col-lg-6">Surface:</label><div class="form-group col-lg-6"><input type="text" class="form-control" name="surface" value="0"></div>  
    <?php }?>
    et puis j'ai créé une autre fonction qui a comme parametre une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
      function calcule($val){
            ....
      }
    dans un bouton je fais appel à cette fonction en lui passant la variable $surf comme parametre

    calcule($surf);

    mais il m'affiche que la variable est undefinie !! alors que je l'ai bien declaré comme vous le voyez dans mon code, ou est le probleme?

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 703
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 703
    Par défaut
    donnez nous le message d'erreur et la ligne de code correspondant au message.

  3. #3
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut
    le message d'erreur: Notice: Undefined variable: surf in C:\wamp\www\BG2\devis cloison.php on line 211

    la ligne en question: calcule($surf);

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 703
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 703
    Par défaut
    le soucis est alors à l'appel de la fonction, la variable n'est pas définie avant cette ligne.

  5. #5
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut
    Justement la variable est definie bien avant comme je l'ai indiqué dans mon premier post

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Comment veux-tu qu'on te corriges si tu crois tout savoir ?

    Tu ne montres que des bribes de code...


  7. #7
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut
    Voilà tout le code:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <div class="form-group">
                                    <input type="text" class="form-control" name="largeur" required placeholder="Largeur">
                                </div>
                                <div class="form-group">
                                    <input type="text" class="form-control" name="longueur" required placeholder="Longueur">
                                </div>
    <div class="mbr-buttons mbr-buttons--right"><button type="submit" class="mbr-buttons__btn btn btn-lg btn-danger" style="margin-bottom:50px;">CALCULER</button></div>
     
    <form action="" method="post">
    <?php  if(isset($_POST['largeur'])){?>
     
                  <?php $surf=$_POST['largeur']*$_POST['longueur']; ?>
                  <label for="nom" class="libel col-lg-6">Surface:</label><div class="form-group col-lg-6"><input type="text" class="form-control" name="surface" value="<?php echo $surf?> M²"></div>
    <?php }else{?>
                  <label for="nom" class="libel col-lg-6">Surface:</label><div class="form-group col-lg-6"><input type="text" class="form-control" name="surface" value="0"></div>  
    <?php }?>
    <form action="" method="post">
                                  <label>
                                        <input type="submit" name="valid" id="bouton" value="Envoyer" />
                                  </label>
                            <?php
    						if (isset($_POST['valid'])) {
    							if ($_POST['valid'] == "Envoyer") {
     
    									calcule($surf);
     
     
    						}
    						?>
     
                            </form>
    <?php 
    function calcule($val){
                echo '$val';
    }
     
    ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php  if(isset($_POST['largeur'])){?>
     
                  <?php $surf=$_POST['largeur']*$_POST['longueur']; ?>
    ...
    <?php }else{?>
    ...
    <?php }?>
    $surf n'est défini QUE en passant dans le if.
    PAS dans le else.

    Il faudrait :
    • écrire le code plus proprement (bonne indentation = meilleure lisibilité)
    • mettre des echo / var_dump pour VERIFIER les variables ! (ce que tu n'as manifestement pas fait)
    • fair epreuve de plus de METHODE et de LOGIQUE *


    * On peut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php  if(isset($_POST['largeur'])){?>
     
                  <?php $surf=$_POST['largeur']*$_POST['longueur']; ?>
                  <label for="nom" class="libel col-lg-6">Surface:</label><div class="form-group col-lg-6"><input type="text" class="form-control" name="surface" value="<?php echo $surf?> M²"></div>
    <?php }else{?>
                  <label for="nom" class="libel col-lg-6">Surface:</label><div class="form-group col-lg-6"><input type="text" class="form-control" name="surface" value="0"></div>  
    <?php }?>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php $surf = ( isset($_POST['largeur']) && isset($_POST['longueur']) )? $_POST['largeur']*$_POST['longueur'] : 0; ?>
           <label for="nom" class="libel col-lg-6">Surface:</label>
           <div class="form-group col-lg-6">
                  <input type="text" class="form-control" name="surface" value="<?php echo $surf; ?>" /> m²
           </div>
    Tu noteras que "m²" n'avait rien à faire dans le value de l'input.

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je trouve les balises <form></form> bizarrement placées. Pour rappel : par défaut, seuls les champs qui se trouvent dans le même formulaire que le bouton submit sont envoyés.
    Donc à moins que tu n'ais également du Javascript qui fait des actions qu'on ne voit pas, tu vas avoir un problème avec ton bouton.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Undefined variable: Idclic
    Par kratos59 dans le forum Langage
    Réponses: 7
    Dernier message: 11/05/2006, 17h50
  2. Notice: Undefined variable
    Par oranoutan dans le forum Langage
    Réponses: 19
    Dernier message: 21/12/2005, 23h28
  3. undefined variable
    Par ept35 dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2005, 16h48
  4. Notice: Undefined variable
    Par kayn dans le forum Langage
    Réponses: 2
    Dernier message: 03/10/2005, 21h44
  5. Réponses: 3
    Dernier message: 22/09/2005, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo