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 :

passage de variable entre classe


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 162
    Points : 69
    Points
    69
    Par défaut passage de variable entre classe
    Bonjour à tous et merci a ceux qui pourront m'aider

    je vous montre d'abord mon code et poserais ma question ensuite :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
     
    $immat=$_POST['immat'];
    $km=$_POST['km'];
    $temps=$_POST['temps'];
    $listeGrais=$_POST['listeGrais'];
    $listeAlim=$_POST['listeAlim'];
    $listeAllum=$_POST['listeAllum'];
    $listeTrans=$_POST['listeTrans'];
    $listeCycle=$_POST['listeCycle'];
    $listeDivers=$_POST['listeDivers'];
     
    $com=$_POST['com'];
     
     
     
    if (isset($immat) && $immat!="" && isset($km) && $km!="" && isset($temps) && $temps!="" ) //on verrifie que tous les champs ont bien ete complete
    {
     
    	if($com=="")
    {
    $com="aucun commentaire";
    }
    				$dateus=date("Y-m-d");
    		include "./connexion_bd.php";
     
     
    		mysql_query("INSERT INTO devis VALUES('NULL','".$dateus."','".$_POST['km']."','".$_POST['immat']."','".$_POST['listeGrais']."','".$_POST['listeTrans']."','".$_POST['listeDivers']."','".$_POST['listeAlim']."','".$_POST['listeAllum']."','".$_POST['listeCycle']."','".$_POST['temps']."','".$_POST['com']."')");
     
    require('fpdf.php');
     
    class PDF extends FPDF
    {
     
     
    //En-tête
    function Header()
    {
     
        //Police Arial gras 15
        $this->SetFont('Arial','B',15);
        //Titre
        $this->Cell(30,10,'Devis pour '.$immat.'',1,0,'C');
        //Saut de ligne
        $this->Ln(20);
    voila j'ai des variables en debut de code, et lorsque je veux les reutiliser dans ma classe pdf, par exemple $immat, je n'y ai pas acces et ma generation de pdf ne fonctionne plus...

    comment pourrais-je rendre accesible mes variables dans toute ma page de code ?

    merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le plus simple de passer les variables dont tu as besoin en paramètre de la méthode qui va les utiliser.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Header($p_immat)
    {
     
        //Police Arial gras 15
        $this->SetFont('Arial','B',15);
        //Titre
        $this->Cell(30,10,'Devis pour '.$p_immat.'',1,0,'C');
        //Saut de ligne
        $this->Ln(20);
    et ensuite lors de l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $immat=$_POST['immat'];
     
    $pdf = new PDF();
    $pdf->Header($immat);

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 162
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par Celira Voir le message
    Le plus simple de passer les variables dont tu as besoin en paramètre de la méthode qui va les utiliser.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Header($p_immat)
    {
     
        //Police Arial gras 15
        $this->SetFont('Arial','B',15);
        //Titre
        $this->Cell(30,10,'Devis pour '.$p_immat.'',1,0,'C');
        //Saut de ligne
        $this->Ln(20);
    et ensuite lors de l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $immat=$_POST['immat'];
     
    $pdf = new PDF();
    $pdf->Header($immat);
    je vais essayer merci

    par contre, j'ai pas mal de parametres a passer est-ce genant ?
    et $p_immat correspond à $_POST['immat'] ? comment il s'y retrouve pour comprenre ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 162
    Points : 69
    Points
    69
    Par défaut
    bon il me mets une erreur

    <br />
    <b>Warning</b>: Missing argument 1 for PDF::Header(), called in F:\appliate\devis\data\php\fpdf.php on line 340 and defined in <b>F:\appliate\devis\data\php\devisData.php</b> on line <b>37</b><br />
    <br />
    <b>Notice</b>: Undefined variable: p_immat in <b>F:\appliate\devis\data\php\devisData.php</b> on line <b>54</b><br />

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    Citation Envoyé par tilily Voir le message
    bon il me mets une erreur

    <br />
    <b>Warning</b>: Missing argument 1 for PDF::Header(), called in F:\appliate\devis\data\php\fpdf.php on line 340 and defined in <b>F:\appliate\devis\data\php\devisData.php</b> on line <b>37</b><br />
    <br />
    <b>Notice</b>: Undefined variable: p_immat in <b>F:\appliate\devis\data\php\devisData.php</b> on line <b>54</b><br />
    L'erreur me semble assez explicite; Il manque un parametre lors de l'appel de PDF::Header().

    Ensuite plusieurs remarque :

    - Passer le contenu de $_POST dans différentes variables pourquoi pas , sauf que si c'est juste pour faire beau ça ne sert à rien. Tu utilise de la mémoire inutilement.

    - Tu fais une insertion de données dans ta bases sans avoir sécurisé tes données. Fait donc une recherche sur les injections sql pour voir de quoi il retourne.
    Mais dans ton cas quelques chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $immat=mysql_real_escape_string($_POST['immat']);
    pourrais être une bonne idée (et du coup la variable $immat devient cette fois utile).

    Pour ton problème une solution simple peut consister à passer en paramètre le tableau $_POST au constructeur de ta classe. C'est moins précis que la solution de Celira mais plus rapide à mettre en oeuvre.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah oui forcément... il semble que Header soit appelé automatique par FPDF et donc que le passage de paramètre ne fonctionne pas...

    Dans ce cas là, je suppose que tu peux surcharger le constructeur et stocker tes variables en tant qu'attribut de la classe... (ce qui est en gros est la solution sugérée par notre ami grunk )

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 162
    Points : 69
    Points
    69
    Par défaut
    merci pour ces precisions...


    j'ai reussi a inserer mes données directement avec $_POST['immat']...je viens de lire que ca avait la meme portée que global

    $this->Text(100,45,'Devis N°'.$_POST['immat'].'');

    et ca fonctionne très bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage de variable entre classes
    Par Xavier76 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 20/10/2010, 12h28
  2. Problème de passage de variable entre class
    Par yasen77 dans le forum Applets
    Réponses: 0
    Dernier message: 30/07/2010, 11h54
  3. passage de variables entre classes
    Par soujava dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 28/04/2008, 11h14
  4. Passage de variables entre 2 classes ?
    Par brunoperel dans le forum Langage
    Réponses: 4
    Dernier message: 30/08/2007, 14h29
  5. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25

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