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

  FORUM HardWare.fr
  Programmation
  PHP

  Undefined variables : meilleure solution ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Undefined variables : meilleure solution ?

n°763176
gooopil
pfiew
Posté le 14-06-2004 à 17:22:57  profilanswer
 

Je suis en train de mettre à jour mon site pour la dernière version de php. Pour chaque variable dans une page, je fais un truc du genre :

Code :
  1. if (!empty($_GET['error'])) 
  2.     $error=$_GET['error'];
  3. else $error="0";


 
Ca marche niquel, mais ca devient très vite fastidieux de faire ca  pour chaque variable qui transite dans chaque page :sleep:  Je me demande donc s'il n'y aurait pas de meilleure solution...
 
Merci


Message édité par gooopil le 15-06-2004 à 21:03:33
mood
Publicité
Posté le 14-06-2004 à 17:22:57  profilanswer
 

n°763191
Profil sup​primé
Posté le 14-06-2004 à 17:34:25  answer
 

function initiate($error) {
  if (!empty($error))  
        $retour=$error;  
  else $retour="0";  
 
return $return;
}
 
initiate($_GET["xx"])


 
ca automatise un peu

n°763198
gooopil
pfiew
Posté le 14-06-2004 à 17:41:11  profilanswer
 

Merci !

n°763932
Koybe
Posté le 15-06-2004 à 11:05:23  profilanswer
 

Ca m'interesse masi je n'ai pas bien compris à quoi cela sert? Et pour quelle version de php est-ce?

n°763946
Profil sup​primé
Posté le 15-06-2004 à 11:10:33  answer
 

toute version.
 
j'ai juste creer un bete fonction qui automatise la verification.
 
En argument tu passe la variable a verifier.
 
comme ca tu n'as plus qu'a appeler la fonction et non pas retaper tout la code

n°763989
deliriumtr​emens
sic transit intestinal...
Posté le 15-06-2004 à 11:30:40  profilanswer
 

Code :
  1. Function PParameter ($name, $default)
  2.     {
  3.     If (isset($_POST[$name]))
  4.     $result=trim(htmlspecialchars($_POST[$name]));
  5.     Else
  6.     $result=$default;
  7.     return($result);
  8.     }
  9. Donc déclaration d'une variable en $_POST
  10. $var=PParameter('var','');


 
Même idée que chacal_one, mais tu as un traitement sur la variable (pas d'espaces et caractères spéciaux modifiés) et tu peux donner une valeur par défaut.
 
Même genre de fonction pour les $_GET (GParameter), etc.


Message édité par deliriumtremens le 15-06-2004 à 11:32:12
n°764088
gizmo
Posté le 15-06-2004 à 12:21:54  profilanswer
 

Les fonctions de chacal et goopil confondent undiefined et empty et ne prennent en compte que les les arguments en _GET.
 
La fonction de délirirumtemens ne prend en compte que les arguments en _POST
 
Aucune des réponses n'est donc correcte ou complète, surtout pour la dernière version de php. Pour avoir une idée de la solution, je vous conseille de regarder du côté de la fonction __get et __set ;)

n°764611
titione
addicted
Posté le 15-06-2004 à 16:09:39  profilanswer
 

euh j'ai cherché mais j'ai pas tout compris... ;(
on peut me la refaire pliz ?? :)

n°764614
skeye
Posté le 15-06-2004 à 16:12:51  profilanswer
 

regarde du coté de isset() et de $_REQUEST, je pense que c'est de ça que voulait parler gizmo.

n°764645
titione
addicted
Posté le 15-06-2004 à 16:30:30  profilanswer
 

y'aurait pas moyen de faire un truc générique pour le $_GET, $_POST ou le $_SESSION ???
je me pose la question, sans avoir trop réfléchi dessus encore mais il doit bien y avoir quelqu'un qui a fait ça ;)

mood
Publicité
Posté le 15-06-2004 à 16:30:30  profilanswer
 

n°764648
gizmo
Posté le 15-06-2004 à 16:32:19  profilanswer
 

skeye a écrit :

regarde du coté de isset() et de $_REQUEST, je pense que c'est de ça que voulait parler gizmo.


non, je parle de fonctions génériques introduites avec php5 qui permettent d'unifier le traitement de variables non définies.

n°764649
skeye
Posté le 15-06-2004 à 16:33:09  profilanswer
 

gizmo a écrit :

non, je parle de fonctions génériques introduites avec php5 qui permettent d'unifier le traitement de variables non définies.


ahhhhhhhh...connais pas, suis sous php 4...[:joce]

n°764756
gooopil
pfiew
Posté le 15-06-2004 à 17:58:53  profilanswer
 

gizmo a écrit :

Les fonctions de chacal et goopil confondent undiefined et empty et ne prennent en compte que les les arguments en _GET.
 


 

Code :
  1. function initiate($error) {
  2.   if (!empty($error)) 
  3.         $retour=$error; 
  4.   else $retour="0"; 
  5. return $return;
  6. }
  7. initiate($_GET["xx"])
  8. initiate($_POST['yyy'])...


 
A priori si tu lui passes un post ou un session ca marchera aussi...
 
Bonne idée la valeur par défaut. Merci delirium :).


Message édité par gooopil le 15-06-2004 à 18:02:45
n°764761
T509
$job->GetJob(now)
Posté le 15-06-2004 à 18:04:32  profilanswer
 

Code :
  1. function initiate($error) {
  2. if(isset($error) { 
  3.       if (!empty($error)) 
  4.               retour=$error; 
  5.       else $retour="0";
  6. }
  7. else {
  8.       $retour = FALSE;
  9. return $retour;
  10. }
  11. initiate($_GET["xx"])
  12. initiate($_POST['yyy'])...



---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°764762
gooopil
pfiew
Posté le 15-06-2004 à 18:09:17  profilanswer
 

T509 >>> isset puis empty, a part permettre l'identification des variables non définies en renvoyant false, ca revient strictement au même que juste empty non ?

n°764795
T509
$job->GetJob(now)
Posté le 15-06-2004 à 18:59:19  profilanswer
 

C'etait pour répondre à Gizmo.
Moi je préfère utiliser isset()


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°764835
gooopil
pfiew
Posté le 15-06-2004 à 19:38:19  profilanswer
 

Bon ben merci bien tout le monde, j'ai peut être pas La solution ultime, mais j'ai quelque chose de concis et qui fonctionne : j'ai fait un mix de chacal et de delirium
 

Code :
  1. function init($var, $defaut = 0)
  2. {
  3. if (!empty($var))   
  4.  $retour=$var;   
  5. else $retour=$defaut;
  6. return $retour;
  7. }
  8. $message = init($_SESSION['message']); par exemple

n°765363
titione
addicted
Posté le 16-06-2004 à 10:16:00  profilanswer
 

encore un mix qui ne fait pas d'erreur (les 2 dernières solutions en généraient chez moi..)

Code :
  1. function init($array, $var)
  2.   {
  3.    $defaut = 0;
  4.  
  5.      if (!empty($array[$var]))   
  6.         $retour=$array[$var];   
  7.      else $retour=$defaut;
  8.        return $retour;
  9.   }
  10.  
  11. $message = init($_GET, 'message');


non ??  :heink:
 
edit : bon c vrai ça va tjrs pas... je cherche et je fais signe !


Message édité par titione le 16-06-2004 à 11:32:36
n°765447
gizmo
Posté le 16-06-2004 à 11:07:11  profilanswer
 

j'abandonne...

n°765588
gooopil
pfiew
Posté le 16-06-2004 à 12:15:56  profilanswer
 

Pourquoi t'abandonnes gizmo ? Faut pas désesperer ;)
 
Bon certes, j'avoue, le truc que je viens de poster ne marche pas toujours et je comprend pas... si je passe en paramètre une variable qui n'a pas été crée ($_SESSION['var_a_tester_pas_encore_creee']), ca me renvoie un : notice undefined index...
En gros, si je fais empty($_SESSION['var_a_tester_pas_encore_creee']), ca me renvoie pas d'erreur, ms si je passe ca en parametre à une fonction, et ben ca marche pas...No comprendo  :??:


Message édité par gooopil le 16-06-2004 à 12:21:26
n°765596
deliriumtr​emens
sic transit intestinal...
Posté le 16-06-2004 à 12:21:29  profilanswer
 

gizmo a écrit :

j'abandonne...


 
Faut aussi comprendre que y a pas encore grand monde qui s'est mis au php5 !

n°765599
gooopil
pfiew
Posté le 16-06-2004 à 12:24:06  profilanswer
 

deliriumtremens a écrit :

Faut aussi comprendre que y a pas encore grand monde qui s'est mis au php5 !


 
+1

n°765733
gizmo
Posté le 16-06-2004 à 14:11:40  profilanswer
 

deliriumtremens a écrit :

Faut aussi comprendre que y a pas encore grand monde qui s'est mis au php5 !


Citation :

Je suis en train de mettre à jour mon site pour la dernière version de php.


 
Cherchez l'erreur...

n°765734
skeye
Posté le 16-06-2004 à 14:12:40  profilanswer
 

gizmo a écrit :

Citation :

Je suis en train de mettre à jour mon site pour la dernière version de php.


 
Cherchez l'erreur...


 

Citation :


Latest stable version of PHP
Complete Source Code
 
    * PHP 4.3.7 (tar.bz2) [3,871Kb] - 02 June 2004
      md5: 5293fdc909a306a2636e0fafcc79442c
    * PHP 4.3.7 (tar.gz) [4,719Kb] - 02 June 2004
      md5: 20abcab34809146cb0f766a47187a957
 
See the ChangeLog for a complete list of changes, or the release notes for more information on this particular release. Daily snapshots are also available from snaps.php.net (not intended for production use!).  


:whistle:

n°766247
gooopil
pfiew
Posté le 16-06-2004 à 17:37:37  profilanswer
 

Je veux bien que tu utilises php 5 si tu fais du beta test ou autres, sinon l'intérêt de bosser sur une RC me semble assez limité...J'aurais pu préciser la dernière version stable, mais ca me semblait suffisemment clair

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Undefined variables : meilleure solution ?

 

Sujets relatifs
[PHP] Confirmer un formulaire en Javascript et garder les variableslien entre fentres avec variables...
[java] Vous préfixez vos variables pour en déterminer la portée?Les Templates, bonne solution ?
[PHP] Affichage des variables formatées ?Gestion de Fichiers. Quelle solution adopter ?
Affectation des variables C à des variables VC++ ?Parcourir un tableau à colonnes variables
[PHP] récuperer variables d'un form qui est dans un mailpoint d'arrêt avec un temps défini (solution de juvamine)
Plus de sujets relatifs à : Undefined variables : meilleure solution ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR