Pen^2 Le 13/08/2012 à 18:19 Salut,
Je suppose que tu as du contenu HTML au dessus de l'ouverture de ta balise php, non ?
le < de <?php doit être le premier caractère du fichier, il ne faut RIEN avant , même pas une espace.
Si tu n'as vraiment rien mis avant, change d'éditeur de texte.
Pen^2 Le 14/08/2012 à 00:22 Oui, je pense que c'est une bonne idée de passer par des paramètres dans l'url.
Auriez-vous un exemple pour associer methode get et html2pdf?
cdt,
Nil Le 15/08/2012 à 17:54 Ce que je te conseille, c'est déjà de faire un PDF "à blanc", sans les données spécifiques à chaque client, histoire de déjà prévoir la mise en page et la mise en forme (et ça te permettra en plus de prendre en main les commandes de base d'html2pdf). Ensuite, les données se manipulent exactement comme avec le PHP, tu les mets dans des variables (par exemple si tu récupères un numéro de facture en GET, tu fais ta requête SQL pour récupérer les données correspondantes à cette facture, tu mes ces données dans des variables et tu les places là où il faut dans ta génération de pdf).

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
ok nil 5/5
j'ai commencé a coder et voila ce que ça donne
<?php
ob_start();?>
<page>
<img src="logo2.jpg">
salut sava
</page>
<?php
$content= ob_get_clean();
require('html2pdf/html2pdf.class.php');
$pdf = new HTML2PDF('P','A4','fr');
$pdf->pdf->SetDisplayMode('real');
$pdf->WriteHTML($content);
$pdf->Output('factures.pdf','D');
?>
jusqu'a la pas de probleme, mais j'aimerais que le pdf ce genere quand je clique sur un submit. comment faire?
cdt,
Nil Le 15/08/2012 à 19:48 De la même façon que l'exécution d'un formulaire classique : <form action="monscriptphpquigeneredupdf.php">
(Sauf si je n'ai pas bien compris ta demande)

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
j'ai reussi voila ce que ça donne, merci nil
<?php
if (isset($_POST['pdf']))
{
ob_start();?>
<style type="text/css">
table {vertical-align:top;width:100%;}
</style>
<page backtop="5mm" backleft="5mm" backright="10mm" backbottom="5mm">
<table>
<tr>
<td style="width:75%;">
<b>test test<br>
</td>
<td style="width:25%;">
Facture n°<br>
A Blois, le 15/08/12
</td>
</tr>
</table>
</page>
<?php
$content= ob_get_clean();
require('html2pdf/html2pdf.class.php');
$pdf = new HTML2PDF('P','A4','fr');
$pdf->pdf->SetDisplayMode('real');
$pdf->WriteHTML($content);
$pdf->Output('factures.pdf');
}
?>
je vais encore vous embeter, mais pour se connecté et utiliser des données de ma bdd. comment faire?
merci d'avance
Nil Le 15/08/2012 à 19:59 Ben tu as deux solutions, soit tu utilises les drivers PDO (voir la documentation sur le site de PHP), soit tu utilises les extensions mysql "natives" php (il vaut mieux mysqli que mysql, à choisir).
Personnellement, je conseille les drivers PDO. A toi de voir à l'usage.
Après, il faut aussi que tu manipules des requêtes SQL pour récupérer les données, si tu n'as jamais fait regarde des tutos sur le SQL, et plus particulièrement les requêtes de SELECT.

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
Aurais-tu un exemple svp?
merci d'avance
Spipu Le 16/08/2012 à 11:24 c'est exactement pareil de faire une page HTML et un document PDF d'un point de vue PHP... ce n'est pas plus compliqué... il faut appliquer exactement les mêmes règles... je suppose que le client pouvait déjà voir sa facture dans ton site, directement via une page HTML généré par du PHP, ben c'est exactement pareil pour généré du PDF : tu dois utiliser les mêmes méthodes pour te connecter à ta base, vérifier les droits de la personne pour vois si oui ou non il a le droit d'accéder à la facture demandée, récupérer les infos de la facture concernée, et faire l'HTML correspondant. Il reste plus qu'après à utiliser HTML2PDF pour convertir l'HTML en PDF.
tout ceci est du PHP de base...
si avant ton appli n'utilisait pas PDO, il ne faut pas l'utiliser maintenant... il faut utiliser les mêmes méthodes que dans le reste de l'appli...
je crois que je te raconte des bêtises, je desirais recuperais des données via la methode get
if (isset($_GET['prenomcl']))
{
<?php echo '<label>Nom :</label><input type="text" SIZE="33" name="nom_client2" value ="'; if (isset($_GET['nomcl'])) {echo $_GET['nomcl'];} echo '"/><br/>';?>
}
Merci d'avance nil pour ta precieuse aide
Nil Le 16/08/2012 à 12:23 Hm, à mon avis, x'est une mauvaise idée de faire ça, par contre. N'importe qui pourrait du coup modifier les informations de requête et faire des fausses factures. Il vaut mieux ne passer que l'identifiant de facture en paramètre et que tu refasses une requête pour récupérer les informations de facture (et encore, il faudra à terme avoir un contrôle pour être sûr que tout le monde ne puisse pas récupérer n'importe quelle facture en jouant avec les paramètres de la requête).

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
Nil Le 16/08/2012 à 13:25 Oui, non mais quand je dis à terme, c'est parce qu'il faut y aller progressivement dans la découverte des éléments de programmation. Il est évident que ça ne devra passer en prod qu'une fois une solution trouvée pour ça.

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
Nil Le 16/08/2012 à 13:41 Oh, ne me fais pas confiance pour ça, je pense que j'en laisse passer en ignorant certaines choses (typiquement tout ce qu'on peut faire/ne pas faire avec TemperData+un peu de sniffing réseau). Et je finis bien souvent par faire des choses un peu crades (une grosse vérification juste avant l'exécution de code critique et un die() violent). Mais bon, j'ai une connaissance très empirique de la sécurité des applis web, un jour il faudra que je pose tout ça pour être certain de ne pas avoir laissé de grosses failles...

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
Nil Le 16/08/2012 à 14:16Edité par Nil le 16/08/2012 à 14:44 Ah oui non, perso j'utilise autant que possible des cookies de session (tout en sachant que ça n'est pas non plus parfait, mais bon...) pour éviter de repasser des informations d'une page à l'autre, et je transmets un maximum des choses en post (ce qui peut poser d'autres soucis, mais bon...).

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
j'essaie de recuperer ma get variable mais j'ai messge d'erreur qui s'affiche
Notice: Undefined index: moisfa
<?php echo $_GET['moisfa'];?>
Nil Le 17/08/2012 à 17:14 Si tu veux vérifier ce que tu as dans ton tableau $_GET, je te rappelle que tu peux utiliser print_r :
echo "<pre>";
print_r($_GET);
echo "</pre>";
(Vu le nombre de fois où tu peux avoir à vérifier le contenu et la structure d'un tableau dans une vie de dev web, je te conseille de te faire une petite fonction de ce type : )
function array_display($my_array)
{
echo "<pre>";
print_r($my_array);
echo "</pre>";
}

Pas tout à fait là, pas tout à fait la personne que vous croyez connaître.
@spipu
oui je sais c'est sur html2pdf mais ça fait quand même partie html2pdf car j'arrive toujours pas à utiliser le get sur html2pdf en revanche sur php jy'arrive. j'aimerais vraiment avoir un exemple svp!!
merci d'avance les amis,