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

Bibliothèques et frameworks PHP Discussion :

[FPDF] fpdf et utilisation des sessions


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut [FPDF] fpdf et utilisation des sessions
    Bonjour tout le monde,
    j ai besoin d editer des factures. Pour cela je dois passer par les etapes suivantes :
    - je choisis la commande que je veux avec le nombre de copie de factures (selon le support, c est pas ça mon probleme)
    - apres je fais un choix par une liste deroulante : soit imprimer soit valider la facture.
    - apres je fais un test pour le nombre de copie. et pour chaque test a sa propre facture.
    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
    <?
    include("configbase.php");
    include("fact_11.php");
    $listpays = $_GET['listpays'];
    $pays=$_GET['pays'];
    $id = $_GET['id'];
    $nb = $_GET['nb'];
    $cmd = strtok($id,",");
    $nbr = strtok($nb,",");
    $req1 = "SELECT *
      FROM commande_web, cmd_sup, support_web, facture_web
      WHERE cmd_sup.id_cmd = commande_web.id_cmd
      and commande_web.id_cmd = facture_web.id_cmd
      and facture_web.id_cmd = $cmd
      and id_support = cmd_sup.id_sup
      and (support_web.id_pays = $listpays or pays_acteur = $listpays)
      AND facture_web.id_sup = cmd_sup.id_sup";
    $res1 = mysql_query($req1);
    $nbr1 = mysql_num_rows($res1);
    if($nbr1 == 1)
    {
     facture_11($cmd,$pays,$listpays);
    }
    elseif($nbr1 == 2)
    {
     if($nbr == 1)
     {
      echo "facture générale faite dans notre local";
     }
     elseif($nbr == 2)
     {
      //header("location:fact_11.php?cmd=$cmd&pays=$pays&listpays=$listpays");
     }
    }
    ?>
    pour le moment j essaye de faire un seul type de facture. mais j ai un petit probleme.
    je veux mettre dans le footer() une adresse qui correspond à celui qui a traité la commande. c a d que cette adresse je vais la prendre depuis la base de données.
    j ai essayé les $_SESSION['id'] (id de l acteur) mais il ne veut pas accepter les session_start().
    je ne sais pas quoi faire??
    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
    <?
    define('FPDF_FONTPATH','font/');
    require('fpdf.php');
    class PDF extends FPDF{
     function Header()
     {
     }
     function dateangfr($date_mysql)
     {
      list($year, $month, $day) = explode("-", $date_mysql);
      $lastmodified = "$day/$month/$year";
      return $lastmodified;
     }
     function Footer()
     {
     }
    }
    function facture_11($cmd,$pays,$listpays)
    {
     $pdf=new PDF(); 
     $pdf->Output();
     //  Redirection JavaScript
    }
    ?>
    aidez moi s il vous plait. merci
    « Seuls vos vrais amis savent où vous frappez pour que ça fasse mal. » - Bernard Werber

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    As-tu une erreure suite au session_start ?

    il ne faut pas que quoi que ce soit (excepté des headers) ait été envoyé au client au moment où on appelle session_start, ton problème vient peut-être de là ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut
    oui y a une erreur quand je mets session_start, il ne connait pas mon $_SESSION['id'].
    ce que je cherche comment passer des parametres a header depuis la page precedente??
    « Seuls vos vrais amis savent où vous frappez pour que ça fasse mal. » - Bernard Werber

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    j'ai pas bien compris la seconde phrase...

    je veux dire, à part ne pas reconnaitre ton $_SESSION['id'], il n'y a pas de message d'erreur du style "headers already sent", ou un truc comme ça, si ce n'est pas le cas, tu es sûr que le session_id() est bien le même que sur la page où tu attribues le $_SESSION['id'] ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut
    si je mets dans la page ou je crée ma facture :
    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
    <?
    session_start();
    define('FPDF_FONTPATH','font/');
    require('fpdf.php');
    class PDF extends FPDF{
     function Header()
     {
     }
     function dateangfr($date_mysql)
     {
      list($year, $month, $day) = explode("-", $date_mysql);
      $lastmodified = "$day/$month/$year";
      return $lastmodified;
     }
     function Footer()
     {
     }
    }
    function facture_11($cmd,$pays,$listpays)
    {
     $pdf=new PDF(); 
     $pdf->Output();
    }
    ?>
    il me donne une boite de dialogue qui me demande :
    Voulez vous ouvrir ou enregistrer ce fichier?
    Nom : ....
    type : Adobe Acrobat Control for ActiveX, 734octets
    Source : 127.0.0.1
    si je supprime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $pdf=new PDF(); 
     $pdf->Output();
    et je mets un echo de de $_SESSION['id'], ça marche et il me la reconnait.
    alors le probleme vient de session_start(), c est ce que j ai compris.
    je pensais travailler avec $_GET['cmd'] cette fois au lieu de $_SESSION['id'], car les 2 vont me diriger vers le meme resultat que je cherche.
    mais ou est ce que je vais mettre ce $cmd ?? ça ce que je ne sais pas.voilà ma page qui fait le test pour appeler la facture.
    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
    <?
    include("configbase.php");
    include("fact_11.php");
    $listpays = $_GET['listpays'];
    $pays=$_GET['pays'];
    $id = $_GET['id'];
    $nb = $_GET['nb'];
    $cmd = strtok($id,",");
    $nbr = strtok($nb,",");
    $req1 = "SELECT *
      FROM commande_web, cmd_sup, support_web, facture_web
      WHERE cmd_sup.id_cmd = commande_web.id_cmd
      and commande_web.id_cmd = facture_web.id_cmd
      and facture_web.id_cmd = $cmd
      and id_support = cmd_sup.id_sup
      and (support_web.id_pays = $listpays or pays_acteur = $listpays)
      AND facture_web.id_sup = cmd_sup.id_sup";
    $res1 = mysql_query($req1);
    $nbr1 = mysql_num_rows($res1);
    if($nbr1 == 1)
    {
     facture_11($cmd,$pays,$listpays);
    }
    elseif($nbr1 == 2)
    {
     if($nbr == 1)
     {
      echo "facture générale faite dans notre local";
     }
     elseif($nbr == 2)
     {
      echo "une seule facture pour notre support";
     }
    }
    ?>
    « Seuls vos vrais amis savent où vous frappez pour que ça fasse mal. » - Bernard Werber

  6. #6
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    J'ai parcouru le tips en diagonale alors j'espere pas être trop HS ..

    La méthode header() de fpdf ne prend pas de paramètre puisqu'elle n'est pas appelée ...

    Il faut que tu globalises la variable que tu veux utiliser si tu veux qu'elle la connaisse .
    Take it HiSy

  7. #7
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut
    mais comment puisqu elle ne connait ni les session_start() ni les get.
    en plus la fonction HEADER, on l appelle pas, elle est tjr là s il y a du code a l interieur, elle l execute. sinon elle ne fait rien
    « Seuls vos vrais amis savent où vous frappez pour que ça fasse mal. » - Bernard Werber

  8. #8
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $decalageLogo=$largeurPage-10-$largeurLogo ;
     
    function Header()
     {
      global $decalageLogo ;
    ...
     
    }
    Take it HiSy

  9. #9
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut
    merci pour votre aide, mais j ai dejà trouvé une autre solution qui marche à merveille.
    pour toute personne qui veut travailler avec des parametres dans header ou footer, mieux d utiliser les variables globales.
    merci encore
    « Seuls vos vrais amis savent où vous frappez pour que ça fasse mal. » - Bernard Werber

  10. #10
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut
    un exemple pour les variables globales :
    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
    function Header()
     {
      global $listpays;
      global $fact;
      $this->Image('image\FRlogo.jpg',30,0,180,45);
      $req1 = "SELECT pays
        FROM commande_web, cmd_sup, support_web, facture_web, pays
        WHERE cmd_sup.id_cmd = commande_web.id_cmd 
        and commande_web.id_cmd = facture_web.id_cmd 
        and facture_web.id_fact = $fact 
        and id_support = cmd_sup.id_sup 
        and (support_web.id_pays = $listpays or pays_acteur = $listpays) 
        AND facture_web.id_sup = cmd_sup.id_sup
        AND pays.id = $listpays";
      $res1 = mysql_query($req1);
      $row1 = mysql_fetch_assoc($res1);
      $this->SetFont('Arial','B',15);
      $this->SetY(2);
      $this->SetX(-30);
      $this->Cell(30,10,strtoupper($row1['pays']),0,0,'C');
     }
    bonne chance
    « Seuls vos vrais amis savent où vous frappez pour que ça fasse mal. » - Bernard Werber

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

Discussions similaires

  1. Utilisation des sessions suite à une connexion
    Par doncandid dans le forum Langage
    Réponses: 4
    Dernier message: 05/11/2006, 19h57
  2. utilisation des sessions dans les jsp
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/08/2006, 19h45
  3. incompréhension sur l'utilisation des sessions
    Par cladsam dans le forum Langage
    Réponses: 12
    Dernier message: 31/01/2006, 12h28
  4. Réponses: 5
    Dernier message: 22/08/2005, 16h48
  5. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40

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