Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2416 connectés 

 


Dernière réponse
Sujet : (PHP) probleme (incomprehensible ?) avec mes variables
Batman-Fr

Mara's dad a écrit a écrit :

J'ai fait un test avec ce code :

Code :
  1. <?php if( $toto=="" ) echo("OK" ); else echo($toto); ?>


 
Avec PHP3 et PHP4.  
 
En PHP4:
Warning: Undefined variable: toto in ...
 
Le code de Batman-fr avec les strlen() peut très bien fonctionner, mais faut désactiver les warnings, ce qui n'est pas très propre... enfin je trouve.




 
:jap:
 
c'est exactement l'erreur que j'obtenais !
et au debut, j'avais exactement cette syntaxe mais vu que ca ne passait pas, j'ai essaye avec d'autre fonctions (d'ou le sterlen ;) )
 
voila :hello:
 
au moins, mon poste n'etait pas si debile que ca alors :)
 
merci encore


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Batman-Fr

Mara's dad a écrit a écrit :

J'ai fait un test avec ce code :

Code :
  1. <?php if( $toto=="" ) echo("OK" ); else echo($toto); ?>


 
Avec PHP3 et PHP4.  
 
En PHP4:
Warning: Undefined variable: toto in ...
 
Le code de Batman-fr avec les strlen() peut très bien fonctionner, mais faut désactiver les warnings, ce qui n'est pas très propre... enfin je trouve.




 
:jap:
 
c'est exactement l'erreur que j'obtenais !
et au debut, j'avais exactement cette syntaxe mais vu que ca ne passait pas, j'ai essaye avec d'autre fonctions (d'ou le sterlen ;) )
 
voila :hello:
 
au moins, mon poste n'etait pas si debile que ca alors :)
 
merci encore

youdontcare

lamatrice a écrit a écrit :

tant qu'on y est :
 
isset() c'est cool et puis y a la petite soeur qui va avec :
unset() pour vider (désaffecter la variable)



tant qu'on parle de ça, y'a un script d'exemple très sympa sur php.net :
 

Code :
  1. <?
  2. echo "<pre>";
  3. function VarStat (&$Var)
  4. {
  5. if (isset($Var)) echo "\tisset"; else echo "\t";
  6. if (empty($Var)) echo "\tempty"; else echo "\t";
  7. if ($Var) echo "\tself"; else echo "\t";
  8. echo "\t".gettype($Var);
  9. }
  10. echo "\n1 "; VarStat($Hello);
  11. echo "\n2 \"\" "; $Hello=""; VarStat($Hello);
  12. echo "\n3 0 "; $Hello= 0; VarStat($Hello);
  13. echo "\n4 FALSE"; $Hello=FALSE; VarStat($Hello);
  14. echo "\n5 UNSET"; unset($Hello); VarStat($Hello);
  15. echo "\n6 XYZ "; $Hello="XYZ"; VarStat($Hello);
  16. echo "\n6 123 "; $Hello=123; VarStat($Hello);
  17. echo "\n6 0.1 "; $Hello=0.1; VarStat($Hello);
  18. echo "\n7 TRUE "; $Hello=TRUE; VarStat($Hello);
  19. echo "</pre>";
  20. ?>

 
ça affichera:

Code :
  1. 1   empty  NULL
  2. 2 ""  isset empty  string
  3. 3 0  isset empty  integer
  4. 4 FALSE isset empty  boolean
  5. 5 UNSET  empty  NULL
  6. 6 XYZ  isset  self string
  7. 6 123  isset  self integer
  8. 6 0.1  isset  self double
  9. 7 TRUE  isset  self boolean
 

[edit]--Message édité par youdontcare--[/edit]

lamatrice tant qu'on y est :
 
isset() c'est cool et puis y a la petite soeur qui va avec :
unset() pour vider (désaffecter la variable)
youdontcare

Mara's dad a écrit a écrit :

C'est çà qu'est bien avec PHP, c'est reposant.
Haaaaaaaaaa.........



c'est clair ... surtout avec les warnings disablés :D :D

Mara's dad C'est çà qu'est bien avec PHP, c'est reposant.
Haaaaaaaaaa.........
youdontcare

Mara's dad a écrit a écrit :

J'ai fait un test avec ce code :

Code :
  1. <?php if( $toto=="" ) echo("OK" ); else echo($toto); ?>


 
Avec PHP3 et PHP4.  
 
C'est vrai que çà fonctionne, j'ai "OK" si $toto n'éxiste pas, mais j'ai aussi çà :  
 
En PHP3:
Warning: Uninitialized variable or array index or property (toto) in your script...
 
En PHP4:
Warning: Undefined variable: toto in ...
 
Si çà le fait pas chez toi, c'est que les warnings ont été désactivé. Essaye avec: error_reporting(E_ALL);
 
En fait je me sert de isset() pour savoir si la variable éxiste (pour un submit par exemple), ce qui est différent que de savoir si elle contient quelque chose.
 
Celà dit, tout dépend de ce qu'on veut faire !
 
Le code de Batman-fr avec les strlen() peut très bien fonctionner, mais faut désactiver les warnings, ce qui n'est pas très propre... enfin je trouve.



on est d'accord ! effectivement, les warnings étaient disablés chez moi. comme une variable nulle est convertie en une string vide, ça marche.
 
j'ai donc codé en php sans les warnings ... ça ne m'a pas posé de problèmes. au contraire même, codant surtout en c++, j'apprécie énormément toutes ces conversions automatiques.

Mara's dad J'ai fait un test avec ce code :

Code :
  1. <?php if( $toto=="" ) echo("OK" ); else echo($toto); ?>


 
Avec PHP3 et PHP4.  
 
C'est vrai que çà fonctionne, j'ai "OK" si $toto n'éxiste pas, mais j'ai aussi çà :  
 
En PHP3:
Warning: Uninitialized variable or array index or property (toto) in your script...
 
En PHP4:
Warning: Undefined variable: toto in ...
 
Si çà le fait pas chez toi, c'est que les warnings ont été désactivé. Essaye avec: error_reporting(E_ALL);
 
En fait je me sert de isset() pour savoir si la variable éxiste (pour un submit par exemple), ce qui est différent que de savoir si elle contient quelque chose.
 
Celà dit, tout dépend de ce qu'on veut faire !
 
Le code de Batman-fr avec les strlen() peut très bien fonctionner, mais faut désactiver les warnings, ce qui n'est pas très propre... enfin je trouve.

youdontcare

Mara's dad a écrit a écrit :

 
 
A condition que $var EXISTE !
 
Faut vous le dire comment ?



qu'est ce que tu racontes ? une variable utilisée en php 'existe' toujours. elle prend une valeur si tu la passe en paramètre dans le script, est nulle sinon.
 
if ($var == "" ), je l'ai utilisé sur mon apache local+php4, sur un serveur php3, un autre php4, et dans le même contexte : tester si une variable venant d'un formulaire est vide ou non. viens pas me dire que ça marche pas, j'ai les preuves :D
 
batman, tu utilises quelle version de php ?

Batman-Fr Mara's Dad : :jap: merci, ca marche nickel chrome :sol:
 
Udontcare : c'est ce que je faisais aussi mais ca passait pas alors j'ai essaye d'autres truc mais Mara's Dad a raison :)
 
voila, encore merci :hello:
 
++
Mara's dad

youdontcare a écrit a écrit :

pour tester si une variable est vide, je fais juste
 
if ($var == "" )
 
ça marche nickel et c'est tout simple :)




 
A condition que $var EXISTE !
 
Faut vous le dire comment ?

youdontcare pour tester si une variable est vide, je fais juste
 
if ($var == "" )
 
ça marche nickel et c'est tout simple :)
Batman-Fr

Mara's dad a écrit a écrit :

Oui, bon là c'est moi qu'ai fait la bourde, mais j'ai pas testé le code, j'ai juste pissé çà comme çà ;-)
 
Y faut bien qu'il apprenne un peu à corriger des bug, nan ?
 
T'as cherché un peu au moins avant de demander ?
17:49 -> 17:57 ...
Mouais, pas trop tout de même :D
 
Allez, courage, çà va renter tout seul :lol:




 
:hello:
 
bah oui j'ai cherche, mais dans la mauvaise direction ;)
 
ok pour la parenthese !
 
heu .... samedi, j'suis pas libre m'ssieur, j'dois em'ner ma p'tite soeur a la piscine alors j'peux pas v'nir copier mille fois la syntaxe du if en php
 
vraaaaiiiiiment desole :D
 
merci encore ! :)
 
++

Mara's dad A bon ,t'es encore là !
SI tu veut :  

Code :
  1. <?php
  2. if( isset( $dn_jour ) )
  3. {
  4.    echo "$dn_jour";
  5. }
  6. ?>


 
Bon, t'enlève les {} parce que y'a que le echo qu'est conditionné par le if()
 

Code :
  1. <?php
  2. if( isset( $dn_jour ) )
  3.    echo "$dn_jour";
  4. ?>


 
Et tu met tout sur une ligne :

Code :
  1. <?php if( isset( $dn_jour ) ) echo "$dn_jour"; ?>


 
Au lieu de fermer la parenthèse du if() avant l'echo(), moi je l'avais oublié, et toi tu l'avais mis après l'echo() !
 
Bon, cette fois, si c'est pas KAPICHE, t'es collé SAMEDI !

Mara's dad Oui, bon là c'est moi qu'ai fait la bourde, mais j'ai pas testé le code, j'ai juste pissé çà comme çà ;-)
 
Y faut bien qu'il apprenne un peu à corriger des bug, nan ?
 
T'as cherché un peu au moins avant de demander ?
17:49 -> 17:57 ...
Mouais, pas trop tout de même :D
 
Allez, courage, çà va renter tout seul :lol:
Batman-Fr prq une parenthese de trop ?
 
1 pour le if et l'autre pour le isset non ? :??: j'ai peur de moi la d'un coup :sarcastic:
 
j'essaie ta manip demain matin :)
 
merci :hello:

 

[edit]--Message édité par Batman-Fr--[/edit]

Sh@rdar value="<?php if(isset($dn_jour) echo "$dn_jour";) ?>">  
 
une parenthèse en trop dans ta condition ;-)
 
mets plutôt value="<?if(isset($dn_jour)) echo "$dn_jour" ?>"
 
@+
Batman-Fr raaaaaa, j'galere encore :(
 
il me met une erreur sur la ligne ou j'ajoute le value :
 
... value="<?php if(isset($dn_jour) echo "$dn_jour";) ?>">
 
j'ai pense que c'etait l'histoire des " du echo, je les ai donc remplacees par des ' mais j'ai toujours l'erreur d'interpretation du code php ....
Batman-Fr oui, ca fait rien
 
exact pour le echo, j'ai la mauvaise habitude de l'oublier lorsque j'insere des variables php dans le code html
 
mea culpa, je teste ta manip mais ca devrait marcher :)
 
on ta deja dit que t'etais rapide toaaa ?? :D
et que t'etais gentil toaaa ?? :lol:
 
nan, serieusement, merci du coup de main :)
Mara's dad Et çà fait quoi ? Rien, message d'erreur...
 
Moi, je ferai :
value="<?php if(isset($dn_jour) echo($dn_jour); ?>"
 
De toute façon, <?php '$dn_jour' ?> je vois pas ce que çà peut donner, quelle que soit la valeur de $dn_jour ! ! !

 

[edit]--Message édité par Mara's dad--[/edit]

Batman-Fr bah oui, j'sais bien :(
 
mais j'ai essaye ca : value="<?php '$dn_jour' ?>" et ca ne marche pas ...

 

[edit]--Message édité par Batman-Fr--[/edit]

Mara's dad J'te préviens, tu va te trouver con là ;-)
 
Tes variables, $typ_gar, $typ_reg... y'a quoi dedans à ton avis si elles éxistent!
 
Donc t'as juste à mettre un value=$ta_variable mais faut qu'elle éxiste !
Batman-Fr re :)
 
bah ca marchait pas avec isset() (sisi) : il passait a l'etape suivante (j'comprends pas non plus mais bon :lol: )
 
par contre, avec empty(), ca passe nickel :)
 
tant que je te tiens :D, tu sais comment faire memoriser les valeur deja rentrees pour les remettre dans les champs lorsque le formulaire est charge a nouveau (quand l'utilisateur a oublie de renseigner un ou plusieurs champs)  ?
Mara's dad C'est sûr que çà marche, c'est LA méthode à utiliser en PHP.
En asp, Request.Form("NIMPORTEQUOI" ) n'est pas une variable. NIMPORTEQUOI est le nom d'un élément de la collection Form de l'objet Request (Ouf).
C'est pour çà que j'aime pas l'ASP, c'est trop bavard !
Batman-Fr :hello:
 
 
ah ok, c'est vrai que ca parait logique :D
 
le prob, c'est que je me suis base pour certain point sur un script ASP et apparament, ce genre de syntaxe passe sous ASP ...
 
merci, je vais essayer ca :)
 
++
Mara's dad Ton pb, c'est que les variable (comme $typ_gar) n'éxistent pas si l'utilisateur ne les a pas renseignées dans le formulaire (c'est ce qu'il te dit : Undefined variable).
Comme tu ne peux pas utiliser une fonction comme strlen() sur une variable qui n'éxiste pas, PHP en fourni une pour çà, c'est isset()!
 
Voir : http://php.net/manual/fr/function.isset.php
Batman-Fr :hello:
 
bon, j'espere que je ne vais pas poser une question a la con, sinon, soyez sympa :(
 
voila, je suis sur un script PHP avec formulaire et je teste mes variables pour savoir si elles sont vides (afin de verifier que l'utilisateur rentre une valeur pour chacune). Si c'est le cas, le script affiche le formulaire. Sinon, il traite les donnees.
 
Voila le debut du script :
 
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body bgcolor="#E1F5FF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="">
<table width="57%" border="0" cellspacing="2">
  <tr>
    <td><img src="../images/sections/adhesion.gif" width="228" height="37"></td>
  </tr>
</table>
<table width="60%" border="0" cellspacing="2">
  <tr>
    <td width="8%"> </td>
    <td width="92%" valign="top" align="left">  
     
<?php
 
if ( (strlen($typ_gar)==0) || (strlen($typ_reg)==0) || (strlen($dn_jour)==0) || (strlen($dn_mois)==0) || (strlen($dn_annee)==0) || (strlen($dn_jour_c)==0) || (strlen($dn_mois_c)==0) || (strlen($dn_annee_c)==0) || (strlen($dn_jour_e1)==0) || (strlen($dn_mois_e1)==0) || (strlen($dn_annee_e1)==0) || (strlen($dn_jour_e2)==0) || (strlen($dn_mois_e2)==0) || (strlen($dn_annee_e2)==0) || (strlen($dn_jour_e3)==0) || (strlen($dn_mois_e3)==0) || (strlen($dn_annee_e3)==0) || (strlen($dn_jour_e4)==0) || (strlen($dn_mois_e4)==0) || (strlen($dn_annee_e4)==0) || (strlen($dn_jour_e5)==0) || (strlen($dn_mois_e5)==0) || (strlen($dn_annee_e5)==0) || (strlen($dn_jour_e6)==0) || (strlen($dn_mois_e6)==0) || (strlen($dn_annee_e6)==0) )
{
?>
 
 <form method="post" action="adhesion_dx.php" name="form_adh">
 
<?php  
if ($etat != "I" )
 echo"Vous n'avez pas rempli tous les champs";
?>
             
        <p><font face="Times New Roman, Times, serif" size="4"><b><font color="#000066">Garantie  
          souhaitée</font></b></font><font face="Times New Roman, Times, serif" size="3">  
          <select name="typ_gar" value="<?php $typ_reg ?>">
   <option value="gnull" selected>Garantie ...</option>
            <option value="geco">Éco</option>
            <option value="g100">100</option>
            <option value="g130">130</option>
            <option value="g160">160</option>
            <option value="g250">250</option>
          </select>
          </font></p>
 
...
 
et voila l'erreur que mon navigateur m'affiche au chargement de la page :  
 
Warning: Undefined variable: typ_gar in D:\serveurs-web\mgel\_mvs2\adhesion\adhesion_dx.php on line 20 (ligne qui correspond au "if" )
 
 
j'espere que vous trouverez mon erreur, perso, j'suis perdu :sweat:
 
merci d'avance
 
++

 

[edit]--Message édité par Batman-Fr--[/edit]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)