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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème fonction php: Undefined variable

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème fonction php: Undefined variable

n°1141853
desperado0​07
Posté le 06-07-2005 à 11:52:14  profilanswer
 

je souhaite créer une fonction php permettant de gérer dynamiquement la récupération des dnnées entrées dans un formulaire.
En effet, j'ai tellement de champ à récupérer et à convertir que le code est très long, je veux donc le simplifier grace à une foncion
 
pour le moment, je récupère dans traitement_form_bd.php ainsi:
 
 

Code :
  1. //on recupère les données du formulaires en testant si elles existent bien
  2. //htmlspecialchars permet de convertir les "  \ " et " ' " et autres caractères spéciaux pour l'insertion dans la BDD
  3. if (isset($_POST['codeing'])) $_codeing=htmlspecialchars($_POST['codeing'],ENT_QUOTES); else $_codeing='';
  4. if (isset($_POST['date'])) $_date=htmlspecialchars($_POST['date'],ENT_QUOTES); else $_date='';
  5. if (isset($_POST['emetteur'])) $_emetteur=htmlspecialchars($_POST['emetteur'],ENT_QUOTES); else $_emetteur='';
  6. if (isset($_POST['obl'])) $_obl=htmlspecialchars($_POST['obl'],ENT_QUOTES); else $_obl='';
  7. if (isset($_POST['sbl'])) $_sbl=htmlspecialchars($_POST['sbl'],ENT_QUOTES); else $_sbl='';
  8. if (isset($_POST['nom'])) $_nom=htmlspecialchars($_POST['nom'],ENT_QUOTES); else $_nom='';
  9. if (isset($_POST['prenom'])) $_prenom=htmlspecialchars($_POST['prenom'],ENT_QUOTES); else $_prenom='';
  10. if (isset($_POST['checkbox_demission'])) $_checkbox_demission=htmlspecialchars($_POST['checkbox_demission'],ENT_QUOTES); else $_checkbox_demission='';
  11. if (isset($_POST['checkbox_depart_periode_essai'])) $_checkbox_depart_periode_essai=htmlspecialchars($_POST['checkbox_depart_periode_essai'],ENT_QUOTES); else $_checkbox_depart_periode_essai='';
  12. if (isset($_POST['checkbox_depart_unilog'])) $_checkbox_depart_unilog=htmlspecialchars($_POST['checkbox_depart_unilog'],ENT_QUOTES); else $_checkbox_depart_unilog='';
  13. if (isset($_POST['checkbox_depart_salarie'])) $_checkbox_depart_salarie=htmlspecialchars($_POST['checkbox_depart_salarie'],ENT_QUOTES); else $_checkbox_depart_salarie='';
  14. if (isset($_POST['checkbox_licenciement'])) $_checkbox_licenciement=htmlspecialchars($_POST['checkbox_licenciement'],ENT_QUOTES); else $_checkbox_licenciement='';
  15. if (isset($_POST['checkbox_cause_reelle'])) $_checkbox_cause_reelle=htmlspecialchars($_POST['checkbox_cause_reelle'],ENT_QUOTES); else $_checkbox_cause_reelle='';
  16. if (isset($_POST['checkbox_faute_grave'])) $_checkbox_faute_grave=htmlspecialchars($_POST['checkbox_faute_grave'],ENT_QUOTES); else $_checkbox_faute_grave='';
  17. if (isset($_POST['checkbox_faute_lourde'])) $_checkbox_faute_lourde=htmlspecialchars($_POST['checkbox_faute_lourde'],ENT_QUOTES); else $_checkbox_faute_lourde='';
  18. if (isset($_POST['checkbox_fin_cdd'])) $_checkbox_fin_cdd=htmlspecialchars($_POST['checkbox_fin_cdd'],ENT_QUOTES); else $_checkbox_fin_cdd='';
  19. if (isset($_POST['checkbox_depart_retraite'])) $_checkbox_depart_retraite=htmlspecialchars($_POST['checkbox_depart_retraite'],ENT_QUOTES); else $_checkbox_depart_retraite='';
  20. if (isset($_POST['checkbox_retraite_unilog'])) $_checkbox_retraite_unilog=htmlspecialchars($_POST['checkbox_retraite_unilog'],ENT_QUOTES); else $_checkbox_retraite_unilog='';
  21. if (isset($_POST['checkbox_retraite_salarie'])) $_checkbox_retraite_salarie=htmlspecialchars($_POST['checkbox_retraite_salarie'],ENT_QUOTES); else $_checkbox_retraite_salarie='';
  22. if (isset($_POST['checkbox_autres'])) $_checkbox_autres=htmlspecialchars($_POST['checkbox_autres'],ENT_QUOTES); else $_checkbox_autres='';


 
 
 
 
 
Je bute sur la fonction dont voici le code:
 
 

Code :
  1. function isset2($string)
  2. {
  3. $a= '\''.$string.'\'';
  4. echo $a;   //test
  5. echo '<br>';
  6. echo '$_'.$string;  //test
  7. if (isset($_POST[$a])) '$_'.$string=htmlspecialchars($_POST[$a],ENT_QUOTES); else '$_'.$string='';
  8. //   if (isset($_POST['codeing'])) $_codeing=htmlspecialchars($_POST['codeing'],ENT_QUOTES); else $_codeing='';  
  9. }


 
Dans traitement_form_bd.php, à l'appel de la fonction avec pour parametre 'codeing':
isset2('codeing');  
 censée cette ligne que j'ai commentée:
if (isset($_POST['codeing'])) $_codeing=htmlspecialchars($_POST['codeing'],ENT_QUOTES); else $_codeing='';
 
je reçois l'erreur
 

Code :
  1. Notice: Undefined variable: _codeing in c:\test\departs\bd\traitement_form_bd.php on line 60


 
àa la ligne 60 il y a ma requête d'insertion:
 

Code :
  1. $query =
  2. "INSERT INTO formulaire_bd (codeing, date, emetteur, obl, sbl, nom, prenom, checkbox_demission, checkbox_depart_periode_essai,
  3. checkbox_depart_unilog, checkbox_depart_salarie, checkbox_licenciement, checkbox_cause_reelle, checkbox_faute_grave,
  4. checkbox_faute_lourde, checkbox_fin_cdd, checkbox_depart_retraite, checkbox_retraite_unilog, checkbox_retraite_salarie,
  5. checkbox_autres) VALUES (
  6. '$_codeing',
  7. '$_date',
  8. '$_emetteur', '$_obl', '$_sbl', '$_nom',
  9. '$_prenom',
  10. '$_checkbox_demission',
  11. '$_checkbox_depart_periode_essai',
  12. '$_checkbox_depart_unilog',
  13. '$_checkbox_depart_salarie',
  14. '$_checkbox_licenciement',
  15. '$_checkbox_cause_reelle',
  16. '$_checkbox_faute_grave',
  17. '$_checkbox_faute_lourde',
  18. '$_checkbox_fin_cdd',
  19. '$_checkbox_depart_retraite',
  20. '$_checkbox_retraite_unilog',
  21. '$_checkbox_retraite_salarie',
  22. '$_checkbox_autres')";


 
 
J'éspère avoir été suffisemment clair,
merci d'avance.

mood
Publicité
Posté le 06-07-2005 à 11:52:14  profilanswer
 

n°1141864
sielfried
Posté le 06-07-2005 à 12:03:42  profilanswer
 

Les variables que tu crées à l'intérieur d'une fonction sont locales à cette fonction.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1142240
el_gaucho
Posté le 06-07-2005 à 15:27:38  profilanswer
 

ca ne serais pas plus simple comme ca?  
function isset2($string)
 {
     $out='';
     if (isset($_GET[$string])) {
          $out=htmlspecialchars($_GET[$string],ENT_QUOTES);
     }
     return $out;
 }
du genre :
$_codeing=isset2('codeing');
$_date=isset2('date');
etc...
mais si tu veux affecter toutes tes variables postées tu peux faire :
while(list($key,$value)=each($_POST)) {
  ${"_".$key}=htmlspecialchars($value,ENT_QUOTES);
}
 
 
et meme si c'est juste pour de l'insert
 $query =  
 "INSERT INTO formulaire_bd (codeing, date, emetteur, obl, sbl, nom, prenom, checkbox_demission, checkbox_depart_periode_essai,  
 checkbox_depart_unilog, checkbox_depart_salarie, checkbox_licenciement, checkbox_cause_reelle, checkbox_faute_grave,  
 checkbox_faute_lourde, checkbox_fin_cdd, checkbox_depart_retraite, checkbox_retraite_unilog, checkbox_retraite_salarie,  
 checkbox_autres) VALUES (
 '".isset2('codeing')."',  
 '".isset2('date')."',  
 '".isset2('emetteur')."', '".isset2('obl')."', '".isset2('sbl')."', '".isset2('nom')."',  
 '".isset2('prenom')."',  
 '".isset2('checkbox_demission')."',  
 '".isset2('checkbox_depart_periode_essai')."',  
 '".isset2('checkbox_depart_unilog')."',  
 '".isset2('checkbox_depart_salarie')."',  
 '".isset2('checkbox_licenciement')."',  
 '".isset2('checkbox_cause_reelle')."',  
 '".isset2('checkbox_faute_grave')."',  
 '".isset2('checkbox_faute_lourde')."',  
 '".isset2('checkbox_fin_cdd')."',  
 '".isset2('checkbox_depart_retraite')."',  
 '".isset2('checkbox_retraite_unilog')."',  
 '".isset2('checkbox_retraite_salarie')."',
 '".isset2('checkbox_autres')."')";
 


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

  Problème fonction php: Undefined variable

 

Sujets relatifs
Problème de POST avec SVGProbleme de mapping memoire[résolu]
(VBA) Fonction imprimer dans menu contextuelparametre d'une fonction
Variable qui compte le nombre d'enregistrements d'une table [RESOLU]Variable / Adresse
Validator problèmeUn p'tit problème sue access
deuxieme liste deroulante en fonction de la premiereprobleme pour récupérer une variable dans un textarea
Plus de sujets relatifs à : Problème fonction php: Undefined variable


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