POO: cree une variable globale ?
Posté : 06 juil. 2006, 15:04
Bonjour tout le monde,
alors, j essaie de comprendre un peu comment marche la POO et je me suis lance dans la creation d une petite classe qui permet de faire des formulaires et de les checker...
enfin bon, c est le concept et c est pour m entrainer plus qu autre chose (enfin si jamais ca sert en meme temps lol...), je commence tout juste.
je recupere les variables du formulaire cree avec extract mis a EXTR_SKIP (dites-moi si c est pas la meilleure methode)
le souci se pose au niveau de cette extraction des variables.
je voudrais qu elle soit accessible dans la classe pour toutes les fonctions mais je n y arrive pas... pour l instant je remets la ligne dans chaque fonction ce qui est pas top...
voila les bouts de ma class si quelqu un sait comment faire... (php5 de pref)
comme vous voyez je declare extract 3 fois : dans la fonction post, fonction input, fonction check_input.
je voudrais declarer extract qu une seule et unique fois et faire appel comme ca $this->extracteur (ou autrement lol)
merci d avance !
alors, j essaie de comprendre un peu comment marche la POO et je me suis lance dans la creation d une petite classe qui permet de faire des formulaires et de les checker...
enfin bon, c est le concept et c est pour m entrainer plus qu autre chose (enfin si jamais ca sert en meme temps lol...), je commence tout juste.
je recupere les variables du formulaire cree avec extract mis a EXTR_SKIP (dites-moi si c est pas la meilleure methode)
le souci se pose au niveau de cette extraction des variables.
je voudrais qu elle soit accessible dans la classe pour toutes les fonctions mais je n y arrive pas... pour l instant je remets la ligne dans chaque fonction ce qui est pas top...
voila les bouts de ma class si quelqu un sait comment faire... (php5 de pref)
class html_form
{
function post()
{
$extracteur= extract($_POST,EXTR_SKIP);
}
function input($type,$input_name,$maxlength,$size)
{
if($type=="text")
{
echo "<input type=\"text\"";
if(!empty($input_name)){echo "name=\"$input_name\"";}
if(!empty($maxlength)){echo "maxlength=\"$maxlength\"";}
if(!empty($size)){ echo "size=\"$size\"";}
$extracteur= extract($_POST,EXTR_SKIP);
if(is_array($extracteur))
{
echo "value=\"".$$input_name."\"";
echo "/>";
}
else
{
$input_send="";
echo "value=\"\"";
echo "/>";
}
}
}
function check_input($contents, $field_name)
{
$extracteur= extract($_POST,EXTR_SKIP);
if(isset($$field_name))
{
if ($contents=="mail")
{
if (!preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,6}$!", $$field_name))
{
echo '<br /><div style="color:red; font-size:10px;">pas bonne adresse mail</div>';}
}
}
}
//appelle a la classe
$html_form= new html_form;
$html_form-> post();
$html_form-> formulaire('test','post','Class_valid.php');
$html_form-> input('text','mail','15','20');
$html_form-> bouton('submit','nom','envoie');
$html_form-> check_input('mail','mail');
bon, ca doit pas etre le summum de la prog, je me doute...comme vous voyez je declare extract 3 fois : dans la fonction post, fonction input, fonction check_input.
je voudrais declarer extract qu une seule et unique fois et faire appel comme ca $this->extracteur (ou autrement lol)
merci d avance !