Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF > FPDF
FPDF Forum d'entraide pour la bibliothèque FPDF permettant de générer des documents PDF en PHP. Avant de poster -> tutoriels FPDF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2006, 14h25   #1
Membre régulier
 
Avatar de kagura
 
Inscription : avril 2005
Messages : 360
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 360
Points : 93
Points : 93
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 :
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 :
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
kagura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2006, 14h34   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
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, 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)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2006, 14h55   #3
Membre régulier
 
Avatar de kagura
 
Inscription : avril 2005
Messages : 360
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 360
Points : 93
Points : 93
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??
kagura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2006, 15h37   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
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, 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)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 10h16   #5
Membre régulier
 
Avatar de kagura
 
Inscription : avril 2005
Messages : 360
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 360
Points : 93
Points : 93
si je mets dans la page ou je crée ma facture :
Code :
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 :
Citation:
Voulez vous ouvrir ou enregistrer ce fichier?
Nom : ....
type : Adobe Acrobat Control for ActiveX, 734octets
Source : 127.0.0.1
si je supprime :
Code :
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 :
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";
 }
}
?>
kagura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 11h09   #6
Membre éclairé
 
Avatar de hisy
 
Inscription : novembre 2004
Messages : 373
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 373
Points : 300
Points : 300
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
hisy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 11h18   #7
Membre régulier
 
Avatar de kagura
 
Inscription : avril 2005
Messages : 360
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 360
Points : 93
Points : 93
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
kagura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 14h54   #8
Membre éclairé
 
Avatar de hisy
 
Inscription : novembre 2004
Messages : 373
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 373
Points : 300
Points : 300
Code :
1
2
3
4
5
6
7
8
9
 
$decalageLogo=$largeurPage-10-$largeurLogo ;
 
function Header()
 {
  global $decalageLogo ;
...
 
}
__________________
Take it HiSy
hisy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2006, 18h45   #9
Membre régulier
 
Avatar de kagura
 
Inscription : avril 2005
Messages : 360
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 360
Points : 93
Points : 93
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
kagura est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2006, 18h46   #10
Membre régulier
 
Avatar de kagura
 
Inscription : avril 2005
Messages : 360
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 360
Points : 93
Points : 93
un exemple pour les variables globales :
Code :
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
kagura est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h22.


 
 
 
 
Partenaires

Hébergement Web