Page 1 sur 1

Fatal error: Call to undefined function php()

Posté : 14 déc. 2011, 22:40
par lecer144
Bonjour j'ai un fichier php dans lequel j'ai mis:
<?php $chemin='rep1/rep2/'.$product_full_image ; ?>
<?php filigrane.php($chemin) ; ?>
je voudrais que ce fichier envoie une image à filigrane.php pour que celui-ci enregistre une copie de l'image (avec un watermark en plus)
mais je me retrouve avec cette erreur Fatal error: Call to undefined function php()
je suis vraiment nul et je pédale dans la choucroute entre les require, les include etc ...
Par avance merci pour vos conseils

Re: Fatal error: Call to undefined function php()

Posté : 14 déc. 2011, 22:44
par Calimero
<?php $chemin='rep1/rep2/'.$product_full_image ; ?>
<?php filigrane.php($chemin) ; ?>
Effectivement, ce n'est pas comme ça qu'on appelle un sous-fichier de code en php. Il faut passer par un include() ou un require().

La différence entre les deux, c'est que require() déclenche une erreur fatale si le fichier demandé n'est pas trouvé (alors que include() continue l'éxécution). Dans ton cas les deux feront bien l'affaire...

N'hésite pas à t'inspirer du manuel qui contient de nombreux exemples : http://fr.php.net/manual/fr/function.include.php
<?php include('filigrane.php'); ?>

Re: Fatal error: Call to undefined function php()

Posté : 14 déc. 2011, 23:13
par lecer144
j'ai essayé mais comment lui envoyer le $chemin stp car mon serveur refuse les url

Re: Fatal error: Call to undefined function php()

Posté : 14 déc. 2011, 23:42
par Calimero
j'ai essayé mais comment lui envoyer le $chemin stp car mon serveur refuse les url
$chemin, si c'est une variable globale (ce qu'elle a l'air d'être dans ton exemple) est transmise automatiquement au script appelé.
<?php
// Fichier1.php
$texte = "bla bla bla";
include('Fichier2.php');
<?php
// Fichier2.php
echo $texte;

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 11:33
par lecer144
J'ai tout un tas de variable dans le fichier donc comment envoyer la bonne (le 2ème fichier attendant une image jpeg pour en faire une copie jpeg watermarkée) ?
du coup pour contourner un peu le pb j'ai inclus le 2ème fichier dans le 1er et ça fonctionne ... ouf
mais maintenant j'ai la même chose à faire avec du pfd ... je voudrais faire appel à ce fihier (http://www.fpdf.de/downloads/addons/9/)
je pourrais essayer de bidouiller comme la 1ère fois et l'inclure dans le fichier principal mais ça commencerait vraiment à être n'importe quoi et ça devient illisible
alors je reviens à la charge ... comment qu'on fait pour faire appel à un autre fichier php en lui envoyant un argument ?

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 11:59
par Mazarini
Bonjour,

Il me semble que la solution à ton problème serait de mettre une balise img dans le document que tu génères et de faire par ailleurs un fichier php qui renvoie au navigateur l'image en question.

Il faut comprendre que php est principalement utilisé pour générer des fichiers qui sont envoyé au navigateur (souvent sans être stocké sur le serveur). Il n'est de toutes façons pas possible d'envoyer 2 fichiers au navigateur avec la même exécution d'un script.

1 ) Le navigateur fait un requete concernant un fichier php
2) Il recoit une page html (en général)
3) il demande les fichiers dont il est fait référence dans le code html
4) il recoit le contenu des fichiers du code html, ces fichiers peuvent être générer par du php

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 12:17
par lecer144
1. fichier principal teste l'existence du pdf watermarké dans répertoire 2 --> si pdf watermarké existe déjà, il l'affiche
2. si pdf watermarké n'existe pas encore >> envoi du chemin du pdf pas encore watermarké et qui est dans répertoire 1 au 2ème fichier php >> ce php serait donc chargé de watermarker ce pdf (en mémoire) puis d'en enregistrer une copie dans le répertoire 2 >> ensuite libération de la mémoire et retour dans le fichier 1 pour affichage de ce nouveau pdf watermarké qui est dans le répertoire 2

c'est bien possible ça non ? :D

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 14:19
par Mazarini
Je pense avoir compris ton problème.

Il faut insérer
if (tu dois transformer le pdf)
{
   $fichier = 'Le nom du fichier'; /* et d'autre variables si nécessaire
   include ('fichier de transformation.php');
}
Il serai plus propre de faire une fonction et de l'appeler avec des paramètres.

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 15:15
par lecer144
Ah ok, il prend la dernière variable déclarée c'est ça ?

je m'attendais à un truc du genre include ('fichier de transformation.php($fichier)');

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 15:40
par Mazarini
Il utilise les mêmes variables, comme si tu copiais le code dans le premier fichier.
Attention donc à ne pas avoir des télescopages entre des noms de variables commun. C'est pour cette raison qu'il serait mieux de faire une fonction dans un fichier que tu inclus au début et que tu appelles quand tu en as besoin.

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 15:41
par lecer144
ok !
j'ai compris !
merci ... je vais tester ça ce soir

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 23:48
par lecer144
Cool j'ai bien avancé ...
mais je suis confronté à une autre erreur que j'ai un peu de mal à percuter maintenant :

Call to undefined function pdf_save() sur :
$pdf_water=new PDF();
$pdf_water->AddPage();
$pdf_water->SetFont('Arial','',12);
$txt="FPDF is a PHP class which allows to generate PDF files with pure PHP, that is to say ".
	"without using the PDFlib library. F from FPDF stands for Free: you may use it for any ".
	"kind of usage and modify it to suit your needs.\n\n";
for($i=0;$i<25;$i++) 
	$pdf_water->MultiCell(0,5,$txt,0,'J');
// $pdf_water->Output(); // original du PHP que j'ai remplacé par pdf_save car je ne veux pas d'affichage mais un enregistrement
pdf_save($pdf_water); // ici le pdf_save que j'ai ajouté
echo '<a href="test/watermark.pdf" target="_blank"><img src="images/stories/internes/telecharger_doc_technique.png"></a>';
?>
Pourtant en étudiant la doct php sur http://fr2.php.net/manual/fr/function.pdf-save.php ... ça a l'air correct cette fonction pdf_save

Re: Fatal error: Call to undefined function php()

Posté : 16 déc. 2011, 23:58
par lecer144
grave .. je kiffe
encore une étape de franchie :D
en fait il fallait rester sur le output();
il suffit d'ajouter un fichier en sortie de output >> output("docts_tech/fichier.pdf", "F");
j'ai trouvé ça sur le net ... par contre je me demande bien à quoi sert le "F" ??