sr34000 Posté 7 Février 2006 Posté 7 Février 2006 Salut 1 script ca va 3 bonjour les degats pourquoi si on prend un script qui marche et qu'on le coupe en 3 celui ci ne marche plus Je part d'un script existant et qui marche, je le coupe en 3, je crée donc 3 fichiers qui contienent chacun un morceau du script Puis je créer un fichier index.php qui inclu les trois morceaux pour reconstituer le tout <?phpinclude ($_SERVER['DOCUMENT_ROOT']. '/morceau01.php'); include ($_SERVER['DOCUMENT_ROOT']. '/morceau02.php'); include ($_SERVER['DOCUMENT_ROOT']. '/morceau03.php'); ?> et bien cela ne marche alors que le script de base était bon... Que faut il faire... pour que cela marche
astrofiles Posté 7 Février 2006 Posté 7 Février 2006 (modifié) tu as peut être un souci de portée de variables. http://www.manucorp.com/docs/php/function.include.php edit : j'ai oublié le lien peut être le plus interressant http://www.manucorp.com/docs/php/language....ables.scope.php J'espère que cela t'aidera Modifié 7 Février 2006 par astrofiles
xpatval Posté 7 Février 2006 Posté 7 Février 2006 Tout le problème est de savoir comment était le script AVANT, et la façon dont tu l'as découpé... xpatval
Théo B. Posté 7 Février 2006 Posté 7 Février 2006 C'est sur que si tu le découpe au beau milieu d'une instruction, il y aura du dégat!
sr34000 Posté 7 Février 2006 Auteur Posté 7 Février 2006 (modifié) Salut je me suis mal exprimé voici un script de base qui fonctionne <HTML><HEAD><TITLE></TITLE></HEAD><BODY><?phpinclude ('script.php');?>Date d'expiration : <?php echo (date('r',$ExpDate)); ?><BR></BODY></HTML> et voici script.php <?php$fichier=$rep_cache . aa . '-date.php';function creer_fichier_nbjour($fichier,$ExpDate) { $txt = '<?php $ExpDate=' . $ExpDate . ';?>'; $fp = fopen ($fichier, 'w'); fputs ($fp, $ExpDate); fclose ($fp); } $ExpDate = time() - (mt_rand(1,10)) * 86400;?> cela fonctionne bien mais si je veux lancer 2 fois script.php voici le message d'erreur <HTML><HEAD><TITLE></TITLE></HEAD><BODY><?phpinclude ('script.php');?>Date d'expiration : <?php echo (date('r',$ExpDate)); ?><BR><?phpinclude ('script.php');?>Date d'expiration : <?php echo (date('r',$ExpDate)); ?><BR></BODY></HTML> Fatal error: Cannot redeclare creer_fichier_nbjour() (previously declared in /home/users/....) in /home/users/.... on line 3 Que faut il faire pour pouvoir lancer deux fois la meme fonction a la suite l'une de l'autre.... sans que cela plante sans avoir a créer srcipt.php et script2.php avoir 2 <?php echo (date('r',$ExpDate)); ?> diférent en utilisant la meme fonction Modifié 7 Février 2006 par sr34000
kazhar Posté 7 Février 2006 Posté 7 Février 2006 ton probleme n'est pas d'avoir deux appels à des fonctions existantes. le probleme, c'est que avec tes include, tu définit deux fois la fonction creer_fichier_nbjour() d'ou ton erreur.
sr34000 Posté 7 Février 2006 Auteur Posté 7 Février 2006 ok merci tu a raison cela vient bien de la maison comment faire dans mon cas
Dan Posté 7 Février 2006 Posté 7 Février 2006 Il faut sortir la fonction de ce fichier et la mettre dans le fichier au niveau supérieur. Ou alors l'entourer de code tel que if(!defined("DEJAVU")) { define("DEJAVU",true); function ..... { // ici le code de ta fonction }} pour lui éviter d'être définie plus d'une fois
sr34000 Posté 7 Février 2006 Auteur Posté 7 Février 2006 (modifié) hum ca m'interresse ca que tu dis la defined ( string name ) http://fr3.php.net/manual/fr/function.defined.php function_exists ( string function_name ) http://fr3.php.net/manual/fr/function.function-exists.php que dois ton mettre a la plave de string name et string function_name commente l'appliquer a mon cas Modifié 7 Février 2006 par sr34000
NorSeb Posté 7 Février 2006 Posté 7 Février 2006 Bonjour, Ce que je ne comprend pas dans ton cas c'est que le "script" que tu inclue contient la définition de la fonction creer_fichier_nbjour(). Or il semble que tu n'utilise pas cette fonction. Un cas "correct" (hum...) pourrait être de mettre cette fonction dans un fichier séparé genre inc_fonctions.php (où tu peux mettre plein de fonctions utiles) que tu inclurais qu'une seule fois. En début de page. Extrait de inc_fonctions.php : function creer_fichier_nbjour($fichier,$ExpDate) {$txt = '<?php$ExpDate=' . $ExpDate . ';?>';$fp = fopen ($fichier, 'w');fputs ($fp, $ExpDate);fclose ($fp);} Ensuite, tu peux mettre "le reste" dans un autre fichier... "reste" que tu pourrais utiliser plusieurs fois (en utilisant la fonction creer_fichier_nbjour()). script.php : $fichier=$rep_cache . aa . '-date.php';$ExpDate = time() - (mt_rand(1,10)) * 86400;creer_fichier_nbjour($fichier,$ExpDate); . Est-ce par là que tu veux aller ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant