Partage
  • Partager sur Facebook
  • Partager sur Twitter

variable globale ?

variable acessible depuis plusieurs fonctions

    19 août 2006 à 1:54:37

    Bonjour !

    Je suis en train de me créer un script où je fais deux include("..."); correspondant donc à deux pages php différentes appelées.

    Le problème, c'est que j'aimerais pouvoir utiliser dans une de ces deux pages appelées une variable a laquelle j'ai assigné une veleur dans l'autre.


    Exemple :
    _________________
    INDEX.PHP
    <?
    include("1.php");
    include("2.php");
    ?>
    _________________
    1.PHP
    <?
    $variable=2;
    ?>
    _________________
    2.PHP
    <?
    echo '$variable'
    ?>
    _________________



    J'espère que c'est compréhensible ...

    Y a t-il une astuce ou autre à utiliser afin d'y arriver ?

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      19 août 2006 à 1:55:50

      Ouais
      Et?
      Y a une erreur?
      Tu as essayer?
      Parce que la comme ca je dirais que ca fonctionne :)
      • Partager sur Facebook
      • Partager sur Twitter
        19 août 2006 à 1:58:46

        Y a t-il quoi que ce soit qui ne fonctionne pas dans ton script ?

        Ca me semble tout à fait correct (Du moment que l'ordre des include est respecté, ce qui est le cas ici).
        • Partager sur Facebook
        • Partager sur Twitter
          19 août 2006 à 1:58:53

          Eh bien j'ai essayé, et en fait les variables n'ont l'air de marcher qu'a l'intérieur de leurs fonctions parce que là ça n'affiche rien (j'ai mis une condition en if(isset($variable)) avant)

          Mais peut-être que ça devrait marcher et que c'est moi qui piétine ...

          En fait, un truc supplémentaire, dans mon script réel, j'ai mis le include("2.php"); avant le include("1.php")


          (en tout cas, merci d'une réponse si rapide ...)
          • Partager sur Facebook
          • Partager sur Twitter
            19 août 2006 à 1:59:27

            <?php
            global $myvar;
            ?>


            Petit discours :



            'Une variable naïs dans un monde A, lors d'une inclusion, elle est toujours dans le monde A mais peut-être utilisé dans le monde B, on dis que la variable est global à AB.

            Mais si on inclue encore la variable sans l'utiliser dans le monde B et que l'on utilise la variable dans un monde C, la variable n'est plus reliée dans aucun des mondes et A ne peut se relier à C.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              19 août 2006 à 2:01:01

              Pas besoin s'il fait comme il a montrer en haut normalement
              • Partager sur Facebook
              • Partager sur Twitter
                19 août 2006 à 2:01:06

                Citation : Veldryn

                Y a t-il quoi que ce soit qui ne fonctionne pas dans ton script ?

                Ca me semble tout à fait correct (Du moment que l'ordre des include est respecté, ce qui est le cas ici).




                Justement, je n'ai pas respecté l'ordre en fait :euh:


                Mais je vais essayer de la rentrer en variable globale, comme conseillé (je ne connaissais pas cette option)
                • Partager sur Facebook
                • Partager sur Twitter
                  19 août 2006 à 2:36:55

                  non en fait c logique si tu as mit le include 2 avant , tu demande d'afficher le contenu d'une variable pas encore definie !

                  Redifis la ou crées un autre include ou tu met juste la variable et tu place cet include en 1er !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 août 2006 à 12:53:17

                    Citation : Mr.photoshop

                    non en fait c logique si tu as mit le include 2 avant , tu demande d'afficher le contenu d'une variable pas encore definie !

                    Redifis la ou crées un autre include ou tu met juste la variable et tu place cet include en 1er !



                    Euh, je n'ai pas bien compris ce que tu voulais dire :euh:
                    Par contre je pense que t'as compris ce que je vouslais faire (afficher plus haut dans une page une variable qui a été définie par quelque chose qui se passe plus bas).

                    Tu saurais ma réexpliquer ? :euh:
                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 août 2006 à 13:54:18

                      non mais , j'ai vu dans un message plus haut qu'il mettait le include du block 2 avant le block 1 , ce qui fait qu'il essaie d'ecrire le contenu d'une fonction qui n'existait pas encore

                      Ex:

                      echo $fonction

                      $fonction=2


                      J'sais pas c pas si compliiqué non ? :)

                      Mais euh j'suis desolé mais je ne suis pas toujours très explicite :-°
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 août 2006 à 18:44:24

                        Euh oui c'est bien ça :)

                        Mais ça ne marche pas :(
                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 août 2006 à 19:20:09

                          bah justement il fo ke ke ca soit dans cet ordre :
                          $fonction=2
                          echo $fonction


                          pour donner le contenu d'une fonction , il faut que celle ci soit definie avant .
                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 août 2006 à 20:14:34

                            Ah d'accord :)

                            Alors comment afficher plus haut dans une page le résultat de quelque chose qui se fait plus bas ?

                            On est obligé de faire tous les calculs avant l'affichage de la page ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 août 2006 à 20:20:51

                              oui soit tu fais ca soit tu fais un autre include plus haut qui contient les definitions de variables

                              Include rajouté $variable=2

                              Include 1 echo $variable
                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 août 2006 à 22:29:15

                                Je ne comprends pas ce que tu entens par "rajouter un autre include qui contient les définitions de variables".

                                en gros ça ferait :

                                include ("definitions.php");
                                include ("variables_dont_on_ne_connait_la_valeur_qu_une_fois_l_include_d_apres_effectue.php");
                                include ("vrai_calcul_qui_assigne_une_valeur_a_la_variable.php");



                                Aussi, je ne vois pas comment rédiger le definitions.php ...
                                Comme ça : $info=0;

                                ??
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 août 2006 à 22:35:22

                                  Tu veux faire quoi, ça sera plus simp;e si tu nous le dit.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    19 août 2006 à 22:50:43

                                    Je fais un script d'upload qui est sur une page upload.php, qui contient et le formulaire, et le code php d'upload.

                                    Tout est géré par la page index.html (en utilisant la transmission d'infos par URL type ?service=upload).

                                    Cette pasge index contient donc lorsqu'elle est en fonction upload :

                                    - une partie haute où j'aimerais donner la résultat de la dernière action menée,
                                    - une partie basse le formulaire d'upload prêt à être réutilisé.

                                    Ainsi, on sait très simplement si la dernière action a échoué ou réussi, et on peut re transmettre un autre fichier sans perte de temps.
                                    (ça peut s'apparenter à un champ de contrôle que j'aimerais tout en haut de la page, ne s'affichant que lorsqu'il y a une information à transmette (du style : Transfert effectué, ou Fichier trop volumineux)).

                                    Le problème, c'est que j'aimerais que la variable $info contenant le résultat du script d'upload ($info contient "Transfert effectué" ou "Fichier trop volumineux") s'affiche plus haut dans la page que l'upload.php.

                                    Structure =>

                                    include("info.php");
                                    include("upload.php");

                                    info.php ne contient qu'un "echo $info;"
                                    Mais commet $info n'est définit qu'après, il est incapable de donner la valeur de cette variable.


                                    C'est plus clair là ? :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      19 août 2006 à 23:36:07

                                      et bien il faut que tu mette dans cet ordre , c'est tout

                                      include ("vrai_calcul_qui_assigne_une_valeur_a_la_variable.php");
                                      include ("variables_dont_on_ne_connait_la_valeur_qu_une_fois_l_include_d_apres_effectue.php");

                                      Pkoi ne peux tu pas faire ds cet ordre ?
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        19 août 2006 à 23:37:42

                                        N'y a t-il pas moyen de faire ça avec des div et un peu de css ?
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          19 août 2006 à 23:42:20

                                          En Efft je ne vois pas ou estle probleme si l' include ("vrai_calcul_qui_assigne_une_valeur_a_la_variable.php"); ne continent que la valeur de la variable .
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            20 août 2006 à 0:04:42

                                            Comme me le conseille A-spec59, je vais essayer de mettre au moins le formatage xHTML autour, j'y verrai p-ê plus clair.

                                            Mr.photoshop, je ne epux pas le faire dans cet ordre pour un bête problème graphique puisqu'il me semble qu'en xHTML il faut mettre les div dans l'ordre dans lequel on veut qu'ils apparaissent de haut en bas. Si je mets dans l'ordre inverse, je serai donc bloqué à afficher ma valeur en bas au lieu d'en haut ...

                                            A moins que j'ai raté quelque chose ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              20 août 2006 à 1:21:28

                                              et bien tu recode , tu copie-colle ton $variable=2 alors c tout :)

                                              ctrl+c pour copier , ctrl+v pour coller ;)
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              variable globale ?

                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                              • Editeur
                                              • Markdown