Aller au contenu

1 script ca va 3 bonjour les degats


sr34000

Sujets conseillés

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

<?php
include ($_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

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é par astrofiles
Lien vers le commentaire
Partager sur d’autres sites

Salut je me suis mal exprimé

voici un script de base qui fonctionne

<HTML>
<HEAD>
<TITLE>

</TITLE>
</HEAD>
<BODY>

<?php
include ('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>

<?php
include ('script.php');
?>


Date d'expiration :
<?php echo (date('r',$ExpDate)); ?>
<BR>


<?php
include ('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é par sr34000
Lien vers le commentaire
Partager sur d’autres sites

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

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

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é par sr34000
Lien vers le commentaire
Partager sur d’autres sites

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 ? :blink:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...