sr34000 Posté 7 Février 2006 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
astrofiles Posté 7 Février 2006 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 7 Février 2006 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Théo B. Posté 7 Février 2006 Partager 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! Lien vers le commentaire Partager sur d’autres sites More sharing options...
sr34000 Posté 7 Février 2006 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
kazhar Posté 7 Février 2006 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
sr34000 Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 ok merci tu a raison cela vient bien de la maison comment faire dans mon cas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 7 Février 2006 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
sr34000 Posté 7 Février 2006 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 7 Février 2006 Partager 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant