éxécuter un fichier php à partir d'un autre (avec get)

éxécuter un fichier php à partir d'un autre (avec get) - PHP - Programmation

Marsh Posté le 15-02-2007 à 17:56:38    

Hello

 

Voilou je suis à l'intérieur d'un script 1, et je voudrais éxecuter un script 2 (avec des paramètre en get), puis revenir au script 1.

 

un truc du style

Code :
  1. blabla;
  2. executer('../scripts/fichier.php?id=75');
  3. echo 'ok';
 

Je précise que :
- Les includes ne marchent pas car ça fait foirer tous les chemins relatifs à l'interieur du script 2
- fopen ne va pas car il n'accepte pas de GET.

 

:'(
Merci !

Message cité 1 fois
Message édité par theredled le 15-02-2007 à 17:57:33

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 15-02-2007 à 17:56:38   

Reply

Marsh Posté le 15-02-2007 à 18:47:51    

1/C bizarre que les includes ne passent pas .. C quoi que tu appelles chemins relatifs ????
2/Ils font quoi tes scripts ? Y'a juste des traitements ? Ou bien y'a de l'affichage écran ??
 
:hello:

Reply

Marsh Posté le 15-02-2007 à 19:02:41    

1/ un chemin relatif c'est genre '../images/image.gif' par ex.
- si le fichier contenant l'include est situé dans /admin/dossier/dossier2/dossier3, il cherchera l'image dans /admin/dossier/dossier2/images/image.gif
- si le fichier contenant l'include est situé dans /admin/dossier, il cherchera l'image dans /images/image.gif.
il est donc impossible d'appeler des fichiers à partir d'un include appeller de différents endroits.
 
2/ le script appelé génère un fichier PDF et l'enregistre sur le serveur, donc non, pas d'affichage écran.


Message édité par theredled le 15-02-2007 à 19:03:19

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 15-02-2007 à 19:08:51    

et sinon, tu sais que php permet d'utiliser des fonctions  
 
donc tu fais un require_once '../scripts/fichier.php';  
puis tu fais genererPdf(75){}
 
c'est quand meme plus propre, non?

Reply

Marsh Posté le 15-02-2007 à 23:57:31    

Et puis pour l'explication, soit l'exemple des images est mal choisi soit il te manques un truc, parce que les images c'est le serveur web qui les sert si on parle http ;)
 
Maintenant si tu parles d'images pour le document pdf à générer, faudra peut être faire un peu de personnalisation plutot que du simple copier/coller [:itm]
 
Et un script qui est dépendant du chemin d'un autre, si c'est pas un choix pour des raisons correctes, ça pue :o
 
Donc on sort les doigts du cul, on enfile une paire de Mappa et on rajoute une constante ;)

Reply

Marsh Posté le 16-02-2007 à 09:54:17    

flo850 a écrit :

et sinon, tu sais que php permet d'utiliser des fonctions

 

donc tu fais un require_once '../scripts/fichier.php';
puis tu fais genererPdf(75){}

 

c'est quand meme plus propre, non?

 
leflos5 a écrit :

Et puis pour l'explication, soit l'exemple des images est mal choisi soit il te manques un truc, parce que les images c'est le serveur web qui les sert si on parle http ;)

 

Maintenant si tu parles d'images pour le document pdf à générer, faudra peut être faire un peu de personnalisation plutot que du simple copier/coller [:itm]

 

Et un script qui est dépendant du chemin d'un autre, si c'est pas un choix pour des raisons correctes, ça pue :o

 

Donc on sort les doigts du cul, on enfile une paire de Mappa et on rajoute une constante ;)


Sauf que, messieurs les professeurs, j'ai pas envie de décrire tout le projet, je pose une simple question, je ne vous demande pas de me résoudre mon problème (que vous ne connaissez pas).

 

Simple exemple, ta constante tu peux te la mettre quelque part si c'est pour faire des includes en chemin relatif à l'intéreur du script appelé (c'est bon j'ai trouvé un bon exemple on peut arreter de jouer au con ? [:mr blue])

 

Après, si vous n'avez pas de réponse, pas obligé de répondre ;)

 

Je comprendrais jamais cette manie d'avoir par défaut une attitude méprisante et donneuse de leçons sans connaitre le contexte :sarcastic: et non, j'ai pas envie d'expliquer le contexte, j'ai posé une question, point.

 
leflos5 a écrit :

Et un script qui est dépendant du chemin d'un autre, si c'est pas un choix pour des raisons correctes, ça pue :o


Mais tu as tout compris, c'est justement ce que je veux éviter [:dawa]

Message cité 1 fois
Message édité par theredled le 16-02-2007 à 10:01:34

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-02-2007 à 10:08:37    

dirname(__FILE__) ne peut pas t'aider?

Reply

Marsh Posté le 16-02-2007 à 10:27:16    

rufo a écrit :

dirname(__FILE__) ne peut pas t'aider?


Pour les includes ? Je ne vois pas comment...

 

Mais dans tous les cas, si je trouvais un moyen d'éxécuter directement le script à la fopen, ce serait plus propre, car je n'aurait pas à modifier tout le script appelé et tous ses includes pour une petite fonctionnalité...

 

Car sinon j'ai plusieurs autres solutions plus simples qu'une constante, passer des arguments du GET en session, puis utiliser fopen, entre autres... Mais je cherche un moyen *simple*, sans avoir à recoder.


Message édité par theredled le 16-02-2007 à 10:33:35

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-02-2007 à 14:08:13    

en meme temps, tu vas peut etre me redire que je joue au professeur méprisant, mais utiliser un fopen pour passer des arguments en GET via une session, ca me fait  bondir .
 
 
et ne pas se renseigner sur ce qu'on te propose ( dirname(__FILE__) te donne ton chemin absolu, il est donc facile de faire l'include correctement ensuite )  
 
 
tu peux aussi jouer avec chdir, mais garre aux effets secondaires
 
Mais bien sur, tu es le seul a travailer sur de vrai projets en php et donc à rencontrer de vrais problèmes, nos conseils de béotiens sont donc inutiles et malvenus , vu que tu detient la vérité

Reply

Marsh Posté le 16-02-2007 à 14:23:06    

theredled a écrit :

Sauf que, messieurs les professeurs, j'ai pas envie de décrire tout le projet, je pose une simple question, je ne vous demande pas de me résoudre mon problème (que vous ne connaissez pas).


 
Hey sac à merde (plus grossier que "messieurs les professeurs", mais d'une c'est assumé, de deux c'est pas plus méprisant), quand ta nullité crasse dans un domaine t'amène à poser des questions, ça serait pas mal de prendre en compte les réponses non ? [:dawak]

Reply

Marsh Posté le 16-02-2007 à 14:23:06   

Reply

Marsh Posté le 16-02-2007 à 14:26:47    

Solution garantie pourrie mais qui réponds à ta question:
utilise curl et connecte toi sur ton propre serveur [:spamafote]

Reply

Marsh Posté le 16-02-2007 à 14:34:09    

Reply

Marsh Posté le 16-02-2007 à 14:37:50    

<totalement_HS>
1 mois et demi éloigné du fofo et depuis 10h je tente de combler le retard, mais que c'est bon, que c'est bon :bounce:  
 
</totalement_HS>

Reply

Marsh Posté le 16-02-2007 à 15:32:55    

Chaos Intestinal a écrit :

Hey sac à merde (plus grossier que "messieurs les professeurs", mais d'une c'est assumé, de deux c'est pas plus méprisant), quand ta nullité crasse dans un domaine t'amène à poser des questions, ça serait pas mal de prendre en compte les réponses non ? [:dawak]


Je suis le premier à admettre que j'ai beaucoup à apprendre, je sors juste d'études, mais me répondre des trucs style "un script qui est dépendant du chemin d'un autre, si c'est pas un choix pour des raisons correctes, ça pue" alors que c'est exactement ce que je veux éviter depuis le début, agrémenté de smileys style "[:itm]" ou de "on sort les doigts du cul", je vais pas dire "oui monsieur", quand bien même le posteur a 15 ans de métier de plus que moi.

 

De plus les réponses, même intéressantes, ne répondaient pas à ma question qui était précise.

  

Et ensuite je me suis bien renseigné sur dirname(__FILE__), mais je dois être con et je ne vois pas comment m'en servir pour les includes.
edit : en fait si :o merci rufo :jap: pas trop besoin de recoder, donc je vais essayer ça.

Message cité 1 fois
Message édité par theredled le 16-02-2007 à 15:43:19

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-02-2007 à 15:58:55    

theredled a écrit :

Je suis le premier à admettre que j'ai beaucoup à apprendre, je sors juste d'études, mais me répondre des trucs style "un script qui est dépendant du chemin d'un autre, si c'est pas un choix pour des raisons correctes, ça pue" alors que c'est exactement ce que je veux éviter depuis le début, agrémenté de smileys style "[:itm]" ou de "on sort les doigts du cul", je vais pas dire "oui monsieur", quand bien même le posteur a 15 ans de métier de plus que moi.
 
De plus les réponses, même intéressantes, ne répondaient pas à ma question qui était précise.
 
 
 
Et ensuite je me suis bien renseigné sur dirname(__FILE__), mais je dois être con et je ne vois pas comment m'en servir pour les includes.
edit : en fait si :o merci rufo :jap: pas trop besoin de recoder, donc je vais essayer ça.


 
Un peu plus et je ratais ton édit. J'allais répondre "oui" à ta question :o  

Reply

Marsh Posté le 16-02-2007 à 16:07:27    

rufo a écrit :

Un peu plus et je ratais ton édit. J'allais répondre "oui" à ta question :o


Je craignais cette réponse, du coup ça a excité mon intellect :o
Ceci dit c'est pas encore testé.


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-02-2007 à 16:09:34    

si t'es sur la bonne voie, c'est déjà ça ;)

Reply

Marsh Posté le 16-02-2007 à 16:12:44    

theredled a écrit :

Hello
 
Voilou je suis à l'intérieur d'un script 1, et je voudrais éxecuter un script 2 (avec des paramètre en get), puis revenir au script 1.
 
un truc du style

Code :
  1. blabla;
  2. executer('../scripts/fichier.php?id=75');
  3. echo 'ok';


 
Je précise que :
- Les includes ne marchent pas car ça fait foirer tous les chemins relatifs à l'interieur du script 2
- fopen ne va pas car il n'accepte pas de GET.
 
:'(
Merci !


 
Il y a donc ici un énorme problème d'architecture à revoir d'urgence :(
 
Pour les include/require, il est toujours mieux d'y aller par chemin absolue, et extrêmement important de toujours savoir où l'on est, et où se trouve les librairies.
 
Pour le coup du GET, là il y a un autre défaut, à savoir qu'on ne peut appeller un script sans requête HTTP. Un truc bien fait utiliserait un système de classe/fonction prenant en paramètre ce qu'il faut, et affichant le résultat. Genre dans ton fichier.php :

Code :
  1. function pouet($id) {
  2.   // ...
  3. }


Et dans ton autre script tu pourrais très bien avoir :

Code :
  1. require_once(CHEMIN_SCRIPTS . '/fichier.php');
  2. pouet(75);


Même chose du coup avec la requête :

Code :
  1. require_once(CHEMIN_SCRIPTS . '/fichier.php');
  2. pouet($_GET['id']);


Dans le style...

Reply

Marsh Posté le 16-02-2007 à 18:13:11    

rufo a écrit :

si t'es sur la bonne voie, c'est déjà ça ;)


 :sol:
J'ai remplacé tous mes include '../script.php'; par des include dirname(__FILE__).'/../script.php'
Et ça marche nickel :jap:

 
FlorentG a écrit :

Il y a donc ici un énorme problème d'architecture à revoir d'urgence :(

 

Pour les include/require, il est toujours mieux d'y aller par chemin absolue, et extrêmement important de toujours savoir où l'on est, et où se trouve les librairies.

 

Pour le coup du GET, là il y a un autre défaut, à savoir qu'on ne peut appeller un script sans requête HTTP. Un truc bien fait utiliserait un système de classe/fonction prenant en paramètre ce qu'il faut, et affichant le résultat. Genre dans ton fichier.php :

Code :
  1. function pouet($id) {
  2.   // ...
  3. }


Et dans ton autre script tu pourrais très bien avoir :

Code :
  1. require_once(CHEMIN_SCRIPTS . '/fichier.php');
  2. pouet(75);


Même chose du coup avec la requête :

Code :
  1. require_once(CHEMIN_SCRIPTS . '/fichier.php');
  2. pouet($_GET['id']);


Dans le style...


C'est vrai que ce serait plus propre pour le cas présent, mais le script (génération d'un PDF) est également appelé par des liens directs dans le navigateur. Pour ces liens, il me faudrait créer des (ou un) fichier(s) intermédiaires... On verra.


Message édité par theredled le 16-02-2007 à 18:26:25

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 23-02-2007 à 19:18:18    

dirname(__FILE__) m'a changer la vie :jap:


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed