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 :

Utilisation de variables


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut Utilisation de variables
    salut
    j'ai un probleme de variable ,j'ai recuperer une variable d'un formulaire et je veut l'utiliser plusieurs fois dans ma page web ,mais je suis obliger toujours d'utiliser la methode $_POST
    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
    <?
     if (isset($_POST['ok']))
     {
    $myvar = $_POST['textfiled'];
      echo "the value of the variable \$myvar is : $myvar <br>";
    }
     
     
    if (isset($_POST['ok'])) {
    
    if ($myvar == "yes" or $myvar == "no" or $myvar == "true" or $myvar == "false")
    {
    settype($myvar,"boolean");
    }}
    
    echo("the data type of \$myvar is :").
    gettype($myvar);
      ?>
    si vous voyez dans la partie du script en gras j'ai due lire encore la variable,et dans la partie incliner il n'est pas possible de travailler avec cette variable il y a message d'erreur de variable non definie?

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    c'est parce que tu refermes le if(isset($_POST['dk']))

    or $myvar n'est définie que si $_POST['ok'] existe :
    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
    <?php
     if (isset($_POST['ok']))
     {
    $myvar = $_POST['textfiled'];
      echo "the value of the variable \$myvar is : $myvar <br>";
    }
     
     
    if (isset($_POST['ok'])) {
     
    if ($myvar == "yes" or $myvar == "no" or $myvar == "true" or $myvar == "false")
    {
    settype($myvar,"boolean");
    }
     
    echo("the data type of \$myvar is :").
    gettype($myvar);
    }  ?>

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut
    si ta variable "ok" ou textfield n'existent pas, il ne serait pas affecter une valeur a myvar, c'est pour cela le msg d'errreur...

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Points : 147
    Points
    147
    Par défaut
    En somme pour resumé ce qu'a enoncé Swoög. Declare la en haut de page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $myvar = '';  // $myvar est globale à toute la page
     if (isset($_POST['ok']))
     {
      ......
     ?>

  5. #5
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    j'ai modifier mon script comme suite
    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
     
    <?
    $myvar = 'textfiled';
     if (isset($_POST['ok']))
     {
      echo "<br> the value of the variable \$myvar is : $myvar <br>";
    }
    if (is_numeric($myvar))
     {
    $myvar= $myvar*1;
    }
    if ($myvar == "yes" or $myvar == "no" or $myvar == "true" or $myvar == "false")
    {
    settype($myvar,"boolean");
    }
    echo "the data type of \$myvar is :";
    gettype($myvar);
      ?>
    mais le dernier echo ne s'affiche pas et la variable global $myvar ne semble pas recevoir la valeur de textfiled?

  6. #6
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pourquoi tu mets une chaîne dans $myvar et après tu testes si c'est un nombre ou un booléen ? Y'a pas comme un problème là ?
    Et le dernier echo il affiche rien du tout ou juste le début (peut-être qu'il faut concaténer le retour du gettype...) ?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    je veut juste metre la valeur du EDIT dans la variable myvar,puis tester si la valeur de cette variable est numerique ou boolean...
    le dernier echo n'affiche rien

  8. #8
    Membre habitué
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Points : 147
    Points
    147
    Par défaut
    <?php
    ...
    echo "the data type of \$myvar is :";
    gettype($myvar);
    ?>
    C'est normal que ca s'affiche pas ...
    ca fé 2 instruction, la premiere "echo ..." ki achiche.
    Mais la 2e "gettype..." n'affiche rien mais retourne ...

    Ca serais mieux
    echo "the data type of \$myvar is :" . gettype($myvar);

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par nicolas.bui
    <?php
    ...
    echo "the data type of \$myvar is :";
    gettype($myvar);
    ?>
    C'est normal que ca s'affiche pas ...
    ca fé 2 instruction, la premiere "echo ..." ki achiche.
    Mais la 2e "gettype..." n'affiche rien mais retourne ...

    Ca serais mieux
    echo "the data type of \$myvar is :" . gettype($myvar);
    C'est ce que je disais plus haut mais le echo devrait s'afficher quand même, sans le type c'est vrai mais il devrait y avoir le début de la phrase

  10. #10
    Membre habitué
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Points : 147
    Points
    147
    Par défaut
    J'ai tester le script GET simplement ... et il affiche le dernier echo ... j'obtiens ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    the data type of $myvar is :

  11. #11
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    je ne sais pas si sa marche avec vous mais j'ai concatener les 02 instructions on une ,mais sa ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "the data type of \$myvar is :" . gettype($myvar);

  12. #12
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par k_boy
    je ne sais pas si sa marche avec vous mais j'ai concatener les 02 instructions on une ,mais sa ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "the data type of \$myvar is :" . gettype($myvar);
    Il y a rien ou que le début ?

  13. #13
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    je n'est pas bien compris votre question, mais voila mon 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
     
    <body>
    <form id="form1" name="form1" method="post" action="">
      <label>
      <input name="textfiled" type="text" id= textfiled />
      <input name="ok" type="submit" id="ok" value="send" />
      </label>
     
    <?
    $myvar = 'textfiled';
      echo "<br> the value of the variable \$myvar is : $myvar <br>";
     
    if (is_numeric($myvar))
     {
    $myvar= $myvar*1;
    }
    if ($myvar == "yes" or $myvar == "no" or $myvar == "true" or $myvar == "false")
    {
    settype($myvar,"boolean");
    }
    echo "the data type of \$myvar is :" . gettype($myvar);
     
      ?>
      </form>
    </body>

  14. #14
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    alors est qu'il y a quelqu'un qui sait ou provienne ce probleme d'affichage ?

  15. #15
    Membre habitué
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Points : 147
    Points
    147
    Par défaut
    Ben il marche ton code non ? mais ton is_numeric ne te sera d'aucune utilité

    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
    <body>
    <form id="form1" name="form1" method="post" action="">
      <label>
      <input name="textfiled" type="text" id= textfiled />
      <input name="ok" type="submit" id="ok" value="send" />
      </label>
     
    <?
    $myvar = '$_POST[ textfiled' ];
      echo "<br> the value of the variable \$myvar is : $myvar <br>";
    // pourquoi ce test ??? ton $myvar sera tj de type string
    if (is_numeric($myvar))
     {
    $myvar= $myvar*1;
    }
    if ($myvar == "yes" or $myvar == "no" or $myvar == "true" or $myvar == "false")
    {
    settype($myvar,"boolean");
    }
    echo "the data type of \$myvar is :" . gettype($myvar);
     
      ?>
      </form>
    </body>

  16. #16
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    est que vous pouvez m'expliquez pourquoi is_numeric ne me sera d'aucune utilite ?

  17. #17
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    parce que en PHP le typage est dynamique...

    si tu veux savoir si une variable représente une valeur numérique, utilise plutôt floatval() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($myvar == floatval($myvar))
    mais je ne vois pas très bien à quoi ça te sert... tu veux à tout prix récupérer le type de ta variable ? pour quoi faire ?

  18. #18
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    je peut pas afficher le deuxieme ECHO,est que sa ne serais pas à cause de easyphp ou de mon editeur PHPEDIT?
    je veut recuperer le type de variable parce que je veut faire un petit jeux de reconnaissance de type pour des personne qui visite cette page web,sa peut parître un peut bête mais c'est une idée qui m'ais venus.

  19. #19
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    dans ce cas, ce que tu peux faire, c'est du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($myval.'' == intval($myval).'') echo 'Un Entier';
    elseif($myval.'' == floatval($myval).'') echo 'Un Flottant';
    elseif(in_array($myval, array('true', 'false', 'yes', 'no'))) echo 'Un Booléen';
    else echo 'Une chaîne de caractères';

  20. #20
    Membre habitué
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Points : 147
    Points
    147
    Par défaut
    ton is_numeric() ne marche pas car les variables récuperer via $_GET ou $_POST sont tj des strings !
    Après c'est selon l'usage dont tu as besoin.

    Dans ton cas $myvar est soit boolean soit numérique, soit chaine.

    Tu devrais faire ca :
    if ( preg_match( "/^[0-9]+/", $myvar ) ) {
    $myvar = (int)$myvar; // ou intval( $myvar );
    }
    else if ( $myvar == 'yes' || $myvar == 'true' ) {
    $myvar = true;
    }
    else if ( $myvar == 'no || $myvar == 'false' ) {
    $myvar = false;
    }
    ....

Discussions similaires

  1. Utilisation de variables dans plusieurs classes
    Par dedeloux dans le forum Langage
    Réponses: 3
    Dernier message: 20/07/2005, 18h25
  2. Réponses: 4
    Dernier message: 11/07/2005, 12h03
  3. Réponses: 7
    Dernier message: 07/09/2004, 15h16
  4. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 14h58
  5. Utiliser des variables d'environnements
    Par Xam335 dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/08/2004, 15h15

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