Partage
  • Partager sur Facebook
  • Partager sur Twitter

Constantes PHP et JS load()

Sujet résolu
    17 avril 2017 à 22:55:35

    Bonjour à tous, je vous expose mon problème.

    J'utilise une constante pour include() mes fichiers, comme ça l'utilisateur ne peut pas y accéder à partir d'une autre url, où la constante n'est pas défini.

    Seul problème quand j'utilise .load() en JavaScript je ne peux pas y accéder.

    Voilà mon PHP :

    define('TEMPLATE_TPL_INDEX', TRUE);

    Page en question :

    <?php
    if(!defined('TEMPLATE_TPL_INDEX')) {
        echo 'Vous n\'avez rien à faire ici.';
    } else {
    ?>
    // Contenu
    
    <?php
    } 
    ?>

    Voilà mon code JS :

    $(document).ready(function(){
    	$('a').click(function(e){
    		e.preventDefault();	
    		$("#container").hide().load($(this).attr('href')).fadeIn('500');
    	});
    });


    Et enfin, voici mon HTML :

    <a href="app/tpl/index.php">Accueil <i class="fa fa-caret-down" aria-hidden="true"></i></a>
    
    <div id="container">
    </div>

    Du coup quand je clique sur le lien, ma div #container affiche : Vous n'avez rien à faire ici. pourtant la variable PHP est bien déclaré dans le fichier. 

    Comment contourner ça ?


    EDIT :

    PS : si je fais un include('app/tpl/index.php'); ça marche correctement, c'est simplement en chargeant avec JS que ça ne fonctionne pas :(



    -
    Edité par xNeed_PHP 17 avril 2017 à 22:57:18

    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2017 à 1:34:25

      Salut,

      C'est un problème de php, pas trop javascript.

      Mais histoire de define n'est pas claire.
      Les define sont reset a chaque exécution. Il vaut utilisé les sessions si tu veut sauvegarde un état d'un utilisateur.

      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2017 à 18:55:22

        GannoN a écrit:

        Salut,

        C'est un problème de php, pas trop javascript.

        Mais histoire de define n'est pas claire.
        Les define sont reset a chaque exécution. Il vaut utilisé les sessions si tu veut sauvegarde un état d'un utilisateur.


        Comment ça, je crain de ne pas avoir compris...
        • Partager sur Facebook
        • Partager sur Twitter
          21 avril 2017 à 19:55:19

          Aucune aide à m'apporter ?
          • Partager sur Facebook
          • Partager sur Twitter
            21 avril 2017 à 20:29:28

            Que souhaite tu faire ?
            Donne nous des détails sur le but recherche ce cette ligne :  define('TEMPLATE_TPL_INDEX', TRUE);

            Donne nous le code qui fonctionne pas car là, je ne sais pas trop comment d'aidez.

            • Partager sur Facebook
            • Partager sur Twitter
              21 avril 2017 à 20:45:02

              Pour ceux qui auraient le même problème que moi, il suffit de faire un .htacess dans le dossier des fichiers à inclure.

              SetEnvIfNoCase X-Requested-With XMLHttpRequest ajax
              Order Deny,Allow
              Deny from all
              Allow from env=ajax

              Ainsi impossible d'accéder au fichiers, seul ajax peut le faire ;)

              Résolu

              • Partager sur Facebook
              • Partager sur Twitter

              Constantes PHP et JS load()

              × 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