Aller au contenu

1 script ca va 3 bonjour les degats


Sujets conseillés

Posté

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

Posté

Tout le problème est de savoir comment était le script AVANT, et la façon dont tu l'as découpé...

xpatval

Posté (modifié)

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
Posté

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.

Posté

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 ;)

Posté

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:

Veuillez vous connecter pour commenter

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



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