Exécution du code php dans un fread ?

Résolu
cs_Joez Messages postés 80 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 19 mai 2012 - 21 mai 2008 à 09:43
kaikilani Messages postés 1 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 19 décembre 2008 - 19 déc. 2008 à 21:18
Bonjour je dois générer un fichier PDF à partir d'un fichier HTML avec HTML2PDF. mais voila moi je dois génrer un fichier pdf à partir d'un fichier php

voici donc mon code

<?php
require('html2fpdf.php');
$pdf=new HTML2FPDF();
$pdf->AddPage();
$fp = fopen("test1.php","r");
$strContent = fread($fp, filesize("test1.php"));
fclose($fp);
$pdf->WriteHTML($strContent);
$pdf->Output();
//echo "PDF file is generated successfully!";
?>

Le problème est que mon code php n'est pas éxécuté. Quelqu'un sait il comment faire pour l'éxécuter avant qu'il soit copié ?

Merci

13 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
21 mai 2008 à 10:10
Bonjour.
Tu devrais essayer de faire un fopen("http://monsite/page1.php","r").
fopen permet de lire des fichiers "distants" avec le protocole http, du coup tu auras bien le résultat de l'exécution de ta page, pas le code source.

Cdt
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
21 mai 2008 à 10:15
Salut,

http://fr.php.net/eval

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
cs_Joez Messages postés 80 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 19 mai 2012
21 mai 2008 à 10:42
hum

ça ne marche pas mieux, je dois mal m'y prendre

<?php
require('html2fpdf.php');
$pdf=new HTML2FPDF();
$pdf->AddPage();


$fp = fopen("test1.php","r");


$strContent = fread($fp, filesize("test1.php"));
fclose($fp);
eval($strContent);
$pdf->WriteHTML($strContent);
$pdf->Output();
//echo "PDF file is generated successfully!";
?>

voici le message d'erreur

Parse error: syntax error, unexpected '<' in test.php(10) : eval()'d code on line 1

Warning: Cannot modify header information - headers already sent by (output started at /var/www/22/c/f/p/cfp29.org/www/sfpp/pdf/test.php(10) : eval()'d code:1) in fpdf.php on line 1665
FPDF error: Some data has already been output to browser, can't send PDF file
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
21 mai 2008 à 10:52
Il est précisé dans la doc de eval() que l'argument doit être du code valide. Du code PHP valide donc... Au même titre que du code PHP dans un script classique.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Joez Messages postés 80 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 19 mai 2012
21 mai 2008 à 11:00
le probleme c'est que c'est du code valide !

<?php echo "bonjour";?>
cs_Joez Messages postés 80 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 19 mai 2012
21 mai 2008 à 11:03
mon fichier test1.php

<?php echo "bonjour";?>

mon fichier test.php

<?php
$fp = fopen("test1.php","r");


$strContent = fread($fp, filesize("test1.php"));
eval($strContent);
echo $strContent ;

?>

le message d'erreur

Parse error: syntax error, unexpected '<' in test.php(9) : eval()'d code on line 1
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
21 mai 2008 à 11:08
Pour que ça marche il faut qu'il n'y ai que des instructions, pas les <? ?>
sinon il y a la méthode que j'ai donné tout à l'heure.

cdt
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
21 mai 2008 à 11:12
L'exécution du script via fopen n'est pas recommandée, parce qu'on perd toutes les variables du script courant. C'est pas forcément toujours ce qu'on cherche...
Et puis le script en question ne doit pas forcément (pour des raisons évidentes de sécurité) être accessible depuis le web... Sinon, aucun intérêt de le stocker dans un fichier texte.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
21 mai 2008 à 11:29
[auteur/NEIGEDHIVER/924195.aspx neigedhiver] >Et puis le script en question ne doit pas forcément
(pour des raisons évidentes de sécurité) être accessible depuis le
web... Sinon, aucun intérêt de le stocker dans un fichier texte.
C'est sur que niveau sécurité ce n'est pas l'idéal, mais avec le eval, un echo "bidule", affichera "bidule" mais ne l'écrira pas dans le fichier pdf, non ?
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
21 mai 2008 à 11:49
J'ai rien compris à ton exemple...
De toute façon, eval, c'est pas bien.
fopen() pour exécuter un script et récupérer le contenu dans une variable, c'est tout aussi mal...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
cs_Joez Messages postés 80 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 19 mai 2012
21 mai 2008 à 13:12
faut faire comment alors si vos deux solution sont pas bonnes ?
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
21 mai 2008 à 14:36
Ben... faut pas stocker du code PHP dans un fichier externe...
Je n'ai eu besoin qu'une seule fois d'utiliser eval() et c'était dû à une mauvaise conception de mon appli...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
kaikilani Messages postés 1 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 19 décembre 2008
19 déc. 2008 à 21:18
Salut!!
J'ai le meme probleme, j'aimerais imprimer une page après exécution et non le code source, comment faire?

 Kaikilani
Rejoignez-nous