Publier un PDF avec la méthode GET - PHP  
Forum > PHP > Publier un PDF avec la méthode GET

Publier un PDF avec la méthode GET

Membre
# Le 20/11/2012 à 22h55
Voila j'aimerai générer un pdf avec la méthode get mais cela ne fonctionne pas, j'ai essayé pas mal de chose. Je vais vous montrer 3 codes :

Cette partie contient les fonctions.
  1. span style="color: #808080; font-style: italic;">/**
  2.  * Regroupe les fonctions d'accès aux données.
  3.  * @package default
  4.  * @author Arthur Martin
  5.  * @todo Fonctions retournant plusieurs lignes sont à réécrire.
  6.  */
  7.  
  8. /**
  9.  * Se connecte au serveur de données MySql.
  10.  * Se connecte au serveur de don
  11.  nées MySql à partir de valeurs
  12.  * prédéfinies de connexion (hôte, compte utilisateur et mot de passe).
  13.  * Retourne l'identifiant de connexion si succès obtenu, le booléen false
  14.  * si problème de connexion.
  15.  * @return resource identifiant de connexion
  16.  */'Y/m/d'"/"'%02d''%02d'"UPDATE fichefrais SET idEtat='CL' WHERE '""' <= mois AND idVisiteur = '".$idVisiteur."'""UPDATE fichefrais SET idEtat='CL' WHERE '""' <= mois AND idVisiteur = '".$idVisiteur."'""/"'%02d''%02d'"UPDATE fichefrais SET idEtat='CL' WHERE "" <= mois AND idVisiteur = ".$idVisiteur."""localhost";
  17. /* $login = "userGsb";
  18.   $mdp = "secret"; */"root" ;
  19. $mdp=""/**
  20.  * Sélectionne (rend active) la base de données.
  21.  * Sélectionne (rend active) la BD prédéfinie gsb_frais sur la connexion
  22.  * identifiée par $idCnx. Retourne true si succès, false sinon.
  23.  * @param resource $idCnx identifiant de connexion
  24.  * @return boolean succès ou échec de sélection BD
  25.  */"gsb_frais";
  26. $query = "SET CHARACTER SET utf8";
  27. // Modification du jeu de caractères de la connexion
  28. /**
  29.  * Ferme la connexion au serveur de données.
  30.  * Ferme la connexion au serveur de données identifiée par l'identifiant de
  31.  * connexion $idCnx.
  32.  * @param resource $idCnx identifiant de connexion
  33.  * @return void
  34.  *//**
  35.  * Echappe les caractères spéciaux d'une chaîne.
  36.  * Envoie la chaîne $str échappée, càd avec les caractères considérés spéciaux
  37.  * par MySql (tq la quote simple) précédés d'un , ce qui annule leur effet spécial
  38.  * @param string $str chaîne à échapper
  39.  * @return string chaîne échappée
  40.  */// si la directive de configuration magic_quotes_gpc est activée dans php.ini,
  41. // toute chaîne reçue par get, post ou cookie est déjà échappée
  42. // par conséquent, il ne faut pas échapper la chaîne une seconde fois
  43. /**
  44.  * Fournit les informations sur un visiteur demandé.
  45.  * Retourne les informations du visiteur d'id $unId sous la forme d'un tableau
  46.  * associatif dont les clés sont les noms des colonnes(id, nom, prenom).
  47.  * @param resource $idCnx identifiant de connexion
  48.  * @param string $unId id de l'utilisateur
  49.  * @return array tableau associatif du visiteur
  50.  */"select id, nom, prenom from visiteur where id='" . $unId . "'"/**
  51.  * Fournit les informations d'une fiche de frais.
  52.  * Retourne les informations de la fiche de frais du mois de $unMois (MMAAAA)
  53.  * sous la forme d'un tableau associatif dont les clés sont les noms des colonnes
  54.  * (nbJustitificatifs, idEtat, libelleEtat, dateModif, montantValide).
  55.  * @param resource $idCnx identifiant de connexion
  56.  * @param string $unMois mois demandé (MMAAAA)
  57.  * @param string $unIdVisiteur id visiteur
  58.  * @return array tableau associatif de la fiche de frais
  59.  */"select IFNULL(nbJustificatifs,0) as nbJustificatifs, Etat.id as idEtat, libelle as libelleEtat, dateModif, montantValide
  60. from FicheFrais inner join Etat on idEtat = Etat.id
  61. where idVisiteur='" . $unIdVisiteur . "' and mois='" . $unMois . "'"/**
  62.  * Vérifie si une fiche de frais existe ou non.
  63.  * Retourne true si la fiche de frais du mois de $unMois (MMAAAA) du visiteur
  64.  * $idVisiteur existe, false sinon.
  65.  * @param resource $idCnx identifiant de connexion
  66.  * @param string $unMois mois demandé (MMAAAA)
  67.  * @param string $unIdVisiteur id visiteur
  68.  * @return booléen existence ou non de la fiche de frais
  69.  */"select idVisiteur from FicheFrais where idVisiteur='" . $unIdVisiteur .
  70. "' and mois='" . $unMois . "'"// si $ligne est un tableau, la fiche de frais existe, sinon elle n'exsite pas
  71. /**
  72.  * Fournit le mois de la dernière fiche de frais d'un visiteur.
  73.  * Retourne le mois de la dernière fiche de frais du visiteur d'id $unIdVisiteur.
  74.  * @param resource $idCnx identifiant de connexion
  75.  * @param string $unIdVisiteur id visiteur
  76.  * @return string dernier mois sous la forme AAAAMM
  77.  */"select max(mois) as dernierMois from FicheFrais where idVisiteur='" .
  78. $unIdVisiteur . "'""dernierMois"/**
  79.  * Ajoute une nouvelle fiche de frais et les éléments forfaitisés associés,
  80.  * Ajoute la fiche de frais du mois de $unMois (MMAAAA) du visiteur
  81.  * $idVisiteur, avec les éléments forfaitisés associés dont la quantité initiale
  82.  * est affectée à 0. Clôt éventuellement la fiche de frais précédente du visiteur.
  83.  * @param resource $idCnx identifiant de connexion
  84.  * @param string $unMois mois demandé (MMAAAA)
  85.  * @param string $unIdVisiteur id visiteur
  86.  * @return void
  87.  */// modification de la dernière fiche de frais du visiteur
  88. 'idEtat']=='CR''CL');
  89. }
  90.  
  91. // ajout de la fiche de frais à l'état Créé
  92. $requete = "insert into FicheFrais (idVisiteur, mois, nbJustificatifs, montantValide, idEtat, dateModif) values ('"
  93. . $unIdVisiteur
  94. . "','" . $unMois . "',0,NULL, 'CR', '""Y-m-d") . "')"// ajout des éléments forfaitisés
  95. $requete = "select id from FraisForfait""id"];
  96. // insertion d'une ligne frais forfait dans la base
  97. $requete = "insert into LigneFraisForfait (idVisiteur, mois, idFraisForfait, quantite)
  98. values ('" . $unIdVisiteur . "','" . $unMois . "','""',0)"// passage au frais forfait suivant
  99. /**
  100.  * Retourne le texte de la requête select concernant les mois pour lesquels un
  101.  * visiteur a une fiche de frais.
  102.  *
  103.  * La requête de sélection fournie permettra d'obtenir les mois (AAAAMM) pour
  104.  * lesquels le visiteur $unIdVisiteur a une fiche de frais.
  105.  * @param string $unIdVisiteur id visiteur
  106.  * @return string texte de la requête select
  107.  */"select fichefrais.mois as mois from fichefrais where fichefrais.idvisiteur ='"
  108. . $unIdVisiteur . "' order by fichefrais.mois desc ""select distinct fichefrais.mois as mois from fichefrais order by fichefrais.mois desc ""select Visiteur.nom as nom, visiteur.id as id, Visiteur.prenom as prenom from visiteur"/**
  109.  * Retourne le texte de la requête select concernant les éléments forfaitisés
  110.  * d'un visiteur pour un mois donnés.
  111.  *
  112.  * La requête de sélection fournie permettra d'obtenir l'id, le libellé et la
  113.  * quantité des éléments forfaitisés de la fiche de frais du visiteur
  114.  * d'id $idVisiteur pour le mois $mois
  115.  * @param string $unMois mois demandé (MMAAAA)
  116.  * @param string $unIdVisiteur id visiteur
  117.  * @return string texte de la requête select
  118.  */"select idFraisForfait, libelle, quantite from LigneFraisForfait
  119. inner join FraisForfait on FraisForfait.id = LigneFraisForfait.idFraisForfait
  120. where idVisiteur='" . $unIdVisiteur . "' and mois='" . $unMois . "'"/**
  121.  * Retourne le texte de la requête select concernant les éléments hors forfait
  122.  * d'un visiteur pour un mois donnés.
  123.  *
  124.  * La requête de sélection fournie permettra d'obtenir l'id, la date, le libellé
  125.  * et le montant des éléments hors forfait de la fiche de frais du visiteur
  126.  * d'id $idVisiteur pour le mois $mois
  127.  * @param string $unMois mois demandé (MMAAAA)
  128.  * @param string $unIdVisiteur id visiteur
  129.  * @return string texte de la requête select
  130.  */"select id, date, libelle, montant from LigneFraisHorsForfait
  131. where idVisiteur='" . $unIdVisiteur
  132. . "' and mois='" . $unMois . "'"/**
  133.  * Supprime une ligne hors forfait.
  134.  * Supprime dans la BD la ligne hors forfait d'id $unIdLigneHF
  135.  * @param resource $idCnx identifiant de connexion
  136.  * @param string $idLigneHF id de la ligne hors forfait
  137.  * @return void
  138.  */"delete from LigneFraisHorsForfait where id = "/**
  139.  * Ajoute une nouvelle ligne hors forfait.
  140.  * Insère dans la BD la ligne hors forfait de libellé $unLibelleHF du montant
  141.  * $unMontantHF ayant eu lieu à la date $uneDateHF pour la fiche de frais du mois
  142.  * $unMois du visiteur d'id $unIdVisiteur
  143.  * @param resource $idCnx identifiant de connexion
  144.  * @param string $unMois mois demandé (AAMMMM)
  145.  * @param string $unIdVisiteur id du visiteur
  146.  * @param string $uneDateHF date du frais hors forfait
  147.  * @param string $unLibelleHF libellé du frais hors forfait
  148.  * @param double $unMontantHF montant du frais hors forfait
  149.  * @return void
  150.  */"insert into LigneFraisHorsForfait(idVisiteur, mois, date, libelle, montant)
  151. values ('" . $unIdVisiteur . "','" . $unMois . "','""','" . $unLibelleHF . "',"")"/**
  152.  * Modifie les quantités des éléments forfaitisés d'une fiche de frais.
  153.  * Met à jour les éléments forfaitisés contenus
  154.  * dans $desEltsForfaits pour le visiteur $unIdVisiteur et
  155.  * le mois $unMois dans la table LigneFraisForfait, après avoir filtré
  156.  * (annulé l'effet de certains caractères considérés comme spéciaux par
  157.  * MySql) chaque donnée
  158.  * @param resource $idCnx identifiant de connexion
  159.  * @param string $unMois mois demandé (MMAAAA)
  160.  * @param string $unIdVisiteur id visiteur
  161.  * @param array $desEltsForfait tableau des quantités des éléments hors forfait
  162.  * avec pour clés les identifiants des frais forfaitisés
  163.  * @return void
  164.  */"update LigneFraisForfait set quantite = " . $quantite
  165. . " where idVisiteur = '" . $unIdVisiteur . "' and mois = '"
  166. . $unMois . "' and idFraisForfait='""'"/**
  167.  * Contrôle les informations de connexionn d'un utilisateur.
  168.  * Vérifie si les informations de connexion $unLogin, $unMdp sont ou non valides.
  169.  * Retourne les informations de l'utilisateur sous forme de tableau associatif
  170.  * dont les clés sont les noms des colonnes (id, nom, prenom, login, mdp)
  171.  * si login et mot de passe existent, le booléen false sinon.
  172.  * @param resource $idCnx identifiant de connexion
  173.  * @param string $unLogin login
  174.  * @param string $unMdp mot de passe
  175.  * @return array tableau associatif ou booléen false
  176.  */// le mot de passe est crypté dans la base avec la fonction de hachage md5
  177. $req = "select id, nom, prenom, login, mdp from Visiteur where login='""' and mdp='" . $unMdp . "'"/**
  178.  * Modifie l'état et la date de modification d'une fiche de frais
  179.  
  180.  * Met à jour l'état de la fiche de frais du visiteur $unIdVisiteur pour
  181.  * le mois $unMois à la nouvelle valeur $unEtat et passe la date de modif à
  182.  * la date d'aujourd'hui
  183.  * @param resource $idCnx identifiant de connexion
  184.  * @param string $unIdVisiteur
  185.  * @param string $unMois mois sous la forme aaaamm
  186.  * @return void
  187.  */"update FicheFrais set idEtat = '" . $unEtat .
  188. "', dateModif = now() where idVisiteur ='" .
  189. $unIdVisiteur . "' and mois = '". $unMois . "'"// fonction vérifier infos comptable
  190. // le mot de passe est crypté dans la base avec la fonction de hachage md5
  191. $req2 = "select id, nom, prenom, login, mdp from comptable where login='""' and mdp='" . $unMdp . "'""select id, nom, prenom, login, mdp from comptable where id='" . $unId . "'"


Cette partie contient le formulaire :

  1. span style="color: #808080; font-style: italic;">/**
  2.  * Script de contrôle et d'affichage du cas d'utilisation "Consulter une fiche de frais"
  3.  * @package default
  4.  * @todo RAS
  5.  */'./include/'"_init.inc.php");
  6.  
  7. // page inaccessible si visiteur non connecté
  8. "Location: cSeConnecter.php""_entete.inc.html""_sommaire.inc.php");
  9.  
  10. // acquisition des données entrées, ici le numéro de mois et l'étape du traitement
  11. "lstMois", """etape",""'lstVisiteur''lstMois''lstVisiteur''lstVisiteur''lstMois''lstMois'];
  12.  
  13. $sql = "UPDATE fichefrais SET idEtat='VA' where idVisiteur = '$idvisit' AND mois=$mois""demanderConsult" && $etape != "validerConsult") {
  14. // si autre valeur, on considère que c'est le début du traitement
  15. $etape = "demanderConsult""validerConsult") { // l'utilisateur valide ses nouvelles données
  16.  
  17. // vérification de l'existence de la fiche de frais pour le mois demandé
  18. $existeFicheFrais = existeFicheFrais($idConnexion, $moisSaisi, $idvisit);
  19. // si elle n'existe pas, on la crée avec les élets frais forfaitisés à 0
  20. "Aucun enregistrement pour ce mois"// récupération des données sur la fiche de frais demandée
  21. "contenu""cValidationFichesFrais.php?id='$idvisit'&mois='$mois'" method="get""corpsForm">
  22. <input type="hidden" name="etape" value="validerConsult""lstMois">Mois : </label>
  23. <select id="lstMois" name="lstMois" title="Sélectionnez le mois souhaité pour la fiche de frais"// on propose tous les mois pour lesquels le visiteur a une fiche de frais
  24. "mois""<?php echo $mois; ?>""selected"" ""lstVisiteur">Visiteur : </label>
  25. <select id="lstVisiteur" name="lstVisiteur" title="Sélectionnez l'Id du visiteur"// on propose tous les Visiteurs
  26. 'nom'];
  27. $id = $lgUsers['id'"<?php echo $id ?>""piedForm">
  28. <p>
  29. <input id="ok" type="submit" value="Valider" size="20"
  30. title="Demandez à consulter cette fiche de frais" />
  31. <input id="annuler" type="reset" value="Effacer" size="20"// demande et affichage des différents éléments (forfaitisés et non forfaitisés)
  32. // de la fiche de frais demandée, uniquement si pas d'erreur détecté au contrôle
  33. "validerConsult"" "'cFicheFraisPDF.php?id="$idvisit"&mois="$mois"'> <img src='images/logo_pdf.png '"libelleEtat""dateModif""encadre""montantValide"// demande de la requête pour obtenir la liste des éléments
  34. // forfaitisés du visiteur connecté pour le mois demandé
  35. // parcours des frais forfaitisés du visiteur connecté
  36. // le stockage intermédiaire dans un tableau est nécessaire
  37. // car chacune des lignes du jeu d'enregistrements doit être doit être
  38. // affichée au sein d'une colonne du tableau HTML
  39. "libelle""quantite""listeLegere"// premier parcours du tableau des frais forfaitisés du visiteur connecté
  40. // pour afficher la ligne des libellés des frais forfaitisés
  41. // second parcours du tableau des frais forfaitisés du visiteur connecté
  42. // pour afficher la ligne des quantités des frais forfaitisés
  43. "qteForfait""listeLegere""nbJustificatifs""date""libelle""montant"// demande de la requête pour obtenir la liste des éléments hors
  44. // forfait du visiteur connecté pour le mois demandé
  45. // parcours des éléments hors forfait
  46. "date""libelle""montant""_pied.inc.html""_fin.inc.php"


Et enfin cette dernière la page de génération du pdf :

  1. span style="color: #808080; font-style: italic;">// On démarre la session AVANT toute chose
  2. 'memory_limit', '16M''fpdf.php''phpToPDF.php') ;
  3. //on initialise les données entete et pied de page
  4. 'entete']="NON"'orientation']="C" ; //classique
  5. 'T_COLOR''T_SIZE' => 11,
  6. 'T_FONT' => 'Arial',
  7. 'T_ALIGN_COL0' => 'L',
  8. 'T_ALIGN' => 'C',
  9. 'V_ALIGN' => 'T',
  10. 'T_TYPE' => 'N',
  11. 'LN_SIZE' => 5,
  12. 'BG_COLOR_COL0''BG_COLOR''BRD_COLOR''BRD_SIZE' => 0.1,
  13. 'BRD_TYPE' => 1,
  14. 'BRD_TYPE_NEW_PAGE' => '',
  15. );
  16.  
  17. // Définition des propriétés du reste du contenu du tableau.
  18. 'T_COLOR''T_SIZE' => 11,
  19. 'T_FONT' => 'Arial',
  20. 'T_ALIGN_COL0' => 'L',
  21. 'T_ALIGN' => 'R',
  22. 'V_ALIGN' => 'M',
  23. 'T_TYPE' => '',
  24. 'LN_SIZE' => 6,
  25. 'BG_COLOR_COL0''BG_COLOR''BRD_COLOR''BRD_SIZE' => 0.1,
  26. 'BRD_TYPE' => '1',
  27. 'BRD_TYPE_NEW_PAGE' => '',
  28. );
  29.  
  30. // Définition des propriétés du tableau.
  31. 'BRD_COLOR''BRD_SIZE' => '0.1',
  32. 'BRD_TYPE' => 0,
  33. 'TB_ALIGN' => 'C',
  34. 'L_MARGIN'// Contenu du header du tableau.
  35. //largeur colonne forfait étape
  36. //largeur colonne frais kilométrique
  37. //largeur colonne nuit hôtel
  38. //largeur colonne repas restaurant
  39. '[C] Forfait étape' ; //contenu colonne forfait étape
  40. '[C] Frais kilométrique' ; //contenu colonne frais kilométrique
  41. '[C] Nuit hôtel' ; //contenu colonne nuit hôtel
  42. '[C] Repas restaurant' ; //contenu colonne repas restaurant
  43. // Contenu du tableau.
  44. $numCellDetail=0 ;
  45.  
  46. // on se connecte à notre base
  47. 'localhost', 'root', '''gsb_frais'//recherche des groupes
  48. $sql = "select idFraisForfait, fraisforfait.libelle, lignefraisforfait.quantite as quantite from LigneFraisForfait
  49. inner join FraisForfait on FraisForfait.id = LigneFraisForfait.idFraisForfait
  50. where lignefraisforfait.idVisiteur='a131' and LigneFraisForfait.mois='201211'""[L] ".$ligne['quantite'


Merci une fois encore pour votre aide.