[PHP] - une fonction dans un include ?

Salut,

En fait j'ai fais une fonction, qui étant assez longue, je l'ai mis dans un autre fichier php, que j'appelle ensuite avec un include, mais elle ne marche pas! alors que si je la met dans la page normal elle marche! N'aurai t-on pas le droit de mettre de fonctions dans un include ????
Merci.

Flipody

17 réponses

  1. Bonjour!

    Hier ça marchait pas, aujourd'hui ça marche! Aller savoir pourquoi... L'informatique a ses mysteres...
    Nous n'irons donc pas nous plaindre au prochain release PHP ;-)
    Bonne journée a tous! Et merci de votre aide!

    Flipody
    1. Salut,

      Je veux pas faire le malin, mais j'ai l'impression que le problème se situe au niveau du passage de la variable de la page parent à la fonction présente dans l'include.
      La variable n'ayant pas de valeur, aucune des conditions n'ait effectuée, et donc il n'y a pas de message d'erreur.

      Maintenant je ne pensais pas que ce cas de figure était possible, connaissant les caractèristiques de la fonction include()...
      ... faudrait faire une réclamation pour la prochaine release de PHP, lol.

      Faut que tu porte plainte pour " langage avarié ", Flipody !

      <=2Spartiate=> Toujours le mot pour rire... !
      1. fais des echo dans ta fonction pour savoir si il rentre dedans au moins
        1. Oui je sais, je suis un boulet de nature dans les codes :D !
          Sinon j'ai essayé NoSFe , ca marche toujours pas , la variable me renvoit toujours "sirene" !
          Mais bon ce n'est pas grave je vais inclure ma fonction dans ma page et pis c'est tout! au pire je finirai par trouver un jour !
          Je m'en vais la, au revoir, bonne soirée a tous et merci beaucoup de m'avoir aidé!

          Flipody
          1. avant de faire la suite essaie avec des parenthèse autour de include : include('vtam.php');

            enleve function vtam($var) et les accolades
            correspondantes

            et ca
            include 'vtam.php';
            $appli="sirene";
            $appli=vtam($appli);
            echo $appli;
            tu remplace par
            $var="sirene";
            include 'vtam.php';
            echo $var
            1. Page principale :

              <html>
              <title>divers essai php</title>
              <head>
              </head>

              <body>

              <?
              include 'vtam.php';
              $appli="sirene";
              $appli=vtam($appli);
              echo $appli;
              ?>

              </body>
              </html>

              L'include

              <?
              function vtam($var)
              {
              if ($var=="accueil")
              {
              $var="anaacc";
              }
              if ($var=="capture")
              {
              $var="virtelse";
              }
              if ($var=="citrus")
              {
              $var="com1prod";
              }
              if ($var=="com2tst")
              {
              $var="anacom09";
              }
              if ($var=="eaec")
              {
              $var="com1prod";
              }
              if ($var=="eaes")
              {
              $var="tso";
              }
              if ($var=="f.elect")
              {
              $var="com2prod";
              }
              if ($var=="finess")
              {
              $var="virtelse";
              }
              if ($var=="gestion")
              {
              $var="anaacc";
              }
              if ($var=="greftel")
              {
              $var="virtelse";
              }
              if ($var=="infogref")
              {
              $var="virtelse";
              }
              if ($var=="intelmat")
              {
              $var="virtelse";
              }
              if ($var=="intrgref")
              {
              $var="virtelse";
              }
              if ($var=="ocean")
              {
              $var="com1prod";
              }
              if ($var=="rep.pers")
              {
              $var="com2prod";
              }
              if ($var=="shmcnav")
              {
              $var="virtelse";
              }
              if ($var=="sir-vtx")
              {
              $var="com3prod";
              }
              if ($var=="sirene")
              {
              $var="com1prod";
              }
              if ($var=="sirene-v")
              {
              $var="virtelse";
              }
              if ($var=="stocks")
              {
              $var="com1prod";
              }
              if ($var=="tsona")
              {
              $var="tso";
              }
              if ($var=="3611")
              {
              $var="virtelse";
              }
              return($var);
              }
              ?>

              Merci.

              Flipody
              1. Ah. Ca change la donne.
                Faudrait que tu publies tout ton code. La fonction et le fichier qui la recoit.
                A mon avis, il doit y avoir gourance quelque part.

                Kalamit,
                8 jours avant le soleil, la mer et les mouettes. :)
                1. Je n'ai aucun message d'erreur! Il n'y a rien dans la variable qui recoit la fonction.

                  Flipody
                  1. Non ca ne change rien ! :-(
                    J'ai essayé de mon coté, de faire une fonction toute bete, j'ai fais la fonction somme, et je l'ai appellé dans ma page et la non plus, ca ne marche, qqn a déja réussi ici a appelé une fonction qui se trouve dans un include ?? ou alors je dois avoir une erreur de synthaxe quelque part mais je ne sais pas ou !

                    Flipody
                    1. Quel est le message d'erreur ? Sans un minimum d'info, les directions à prendre sont multiples !

                      Kalamit,
                      8 jours avant le soleil, la mer et les mouettes. :)
                      1. je ne c pa si " include 'vtam.php'; " marche... essai avec " include("vtam.php");
                        1. Ca ne marche toujours pas, voila le code

                          //page ou je fais l'include
                          <?
                          include 'vtam.php';
                          $appli="sirene";
                          $appli=vtam($appli);
                          echo $appli;
                          ?>

                          //et l'include 'vtam.php'
                          <?
                          function vtam($var)
                          {
                          if ($var=="accueil")
                          {
                          $var="anaacc";
                          }
                          //...etc...
                          return($var)
                          }
                          ?>

                          Et si je met la fonction dans ma page normal, elle marche, c'est ca que je ne comprends pas!
                          Merci de votre aide.

                          Flipody
                          1. un incude te copie tel kel le contenu du fichier inclu et te le colle sur place. Vérifie donc que tu n'a pa fait ton include a l'intérieur d'une fonction et que ton inclusion se fait bien avant l'appel a la fonction. Normalement il devrai pas y avoir de soucis
                            1. si ta fonction est la seule de la page enleve function et fait ton include lorsque tu ve l'utiliser
                              1. Salut,
                                Normalement c'est possible.
                                a tu bien declarer ton include? : include 'fichier.php';
                                a tu bien declarer ta fonction? function machin()...
                                Pour une aide plus precise tu devrait poster ton code (ou au moins un partie).
                                Bonne chance!
                                1. Salut,
                                  Si si, tu mets ce que tu veux dans ton include. Par contre, je ne connais pas l'erreur "ca marche pas" en php...

                                  Kalamit,
                                  8 jours avant le soleil, la mer et les mouettes. :)