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
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Points : 39
    Points
    39
    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 éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 330
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Points : 39
    Points
    39
    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 éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 330
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Points : 39
    Points
    39
    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
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Points : 39
    Points
    39
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    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.

Discussions similaires

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

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