session sous php

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • session sous php

    Bonjour
    j'ai cherché sur le net et sur le forum sans trouver le bon code

    je souhaite afficher les variable de session dans une page php indépendante a la racine du site

    version joomla 3.9.11

    voici mon code

    <?php
    define('_JEXEC', 1);
    define('JPATH_BASE', '.');
    require_once JPATH_BASE . '/includes/defines.php';
    require_once JPATH_BASE . '/includes/framework.php';
    require_once JPATH_BASE . '/libraries/joomla/factory.php';

    $user = JFactory::getUser();
    echo 'User name: ' . $user->username . '<br />';
    echo 'Real name: ' . $user->name . '<br />';
    echo 'User ID : ' . $user->id . '<br />';
    ?>

    le problème la page de s'affiche pas,(HTTP ERROR 500) j'ai bien comprise qu'il y avec une sécurité mais je ne parviens pas a la mettre en place
    si quelque a une réponse merci
    Xavier
    Dernière édition par xavierlille à 18/09/2019, 12h29

  • #2
    Hello.

    Tu dois avoir une regle de sécurité dans ton .htaccess qui t'interdit l’exécution d'un script hors index.php (peut-être generée par aesecure ou, admintools).

    Et retire le :
    Code PHP:
    require_once JPATH_BASE '/libraries/joomla/factory.php'
    Il n'est pas nécessaire.
    Dernière édition par roland_d_alsace à 18/09/2019, 20h03
    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
    Rejoignez le Joomla Users Groupe Alsace...
    roland_d_alsace va-t-il devenir roland_du_grand_est ?

    Commentaire


    • #3
      Bonsoir

      Envoyé par roland_d_alsace Voir le message
      Tu dois avoir une regle de sécurité dans ton .htaccess qui t'interdit l’exécution d'un script hors index.php (peut-être generée par aesecure ou, admintools).
      Dans ce cas-là, ce serait un code d'erreur 403 (access denied) et non 500 qui est typique d'une erreur serveur.

      Dans le code PHP proposé plus haut; je ne vois pas personnellement de raison d'une erreur 500.
      Christophe (cavo789)
      Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
      Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

      Commentaire


      • #4
        Envoyé par cavo789 Voir le message
        ...

        Dans le code PHP proposé plus haut; je ne vois pas personnellement de raison d'une erreur 500.
        Oui moi non plus.
        C'est pour cela que je pensai que l'erreur était provoquée par une règle dans le htaccess.

        Sinon il faut voir dans les logs d'apache.

        Et j’essaierai quand même avec le htaccess standard de Joomla (après avoir fait une sauvegarde du htaccess actuel bien sur).
        Dernière édition par roland_d_alsace à 18/09/2019, 20h16
        A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
        Rejoignez le Joomla Users Groupe Alsace...
        roland_d_alsace va-t-il devenir roland_du_grand_est ?

        Commentaire


        • #5
          Bonsoir et merci
          en suppriment le ligne "require_once JPATH_BASE . '/libraries/joomla/factory.php'; " la page s'affiche mais sans les valeur de session :


          User name:
          Real name:
          User ID : 0


          alors que quand le met le code dans un page joomla voci le retour :
          User name: test
          Real name: Super Utilisateur
          User ID : 566


          j'ai besoin de récupéré les valeur de session dans la page php non inclus dans une page joomla
          des idées

          merci de votre aide

          Commentaire


          • #6
            Hello.

            Si tu fait cela dans un script php indépendant, il faut connaitre le principe des sessions en php.
            Il faut récupérer l'identifiant de session dans le cookie session de Joomla.

            Pour cela le framework de Joomla peut t'aider, mais n’étant pas chez moi je ne peux t'en dire +.

            Essaie peut-être en créant l'application que tu veux utiliser (partie site ou administrateur) par exemple
            Code PHP:
            $app JFactory::getApplication('site'); 
            Ceci avant de chercher l'utilisateur courant.
            Dernière édition par roland_d_alsace à 19/09/2019, 12h52
            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
            Rejoignez le Joomla Users Groupe Alsace...
            roland_d_alsace va-t-il devenir roland_du_grand_est ?

            Commentaire


            • #7
              Merci ÉNORMÉMENT pour votre aide
              pour les suivant qui cherche voici le résumé

              code a la racine du site
              <?php
              define('_JEXEC', 1);
              define('JPATH_BASE', '.');
              require_once JPATH_BASE . '/includes/defines.php';
              require_once JPATH_BASE . '/includes/framework.php';

              $app = JFactory::getApplication('site');

              $user = JFactory::getUser();
              echo 'User name: ' . $user->username . '<br />';
              echo 'Real name: ' . $user->name . '<br />';
              echo 'User ID : ' . $user->id . '<br />';


              //ecriture d'une nouvelle variable de session (a priori on ne peut pas en ajouter dans 'User' donc j'ai utilisé 'Session')
              $session = JFactory::getSession();
              $session->set('nom', "valeur");
              ?>

              lecture de la nouvelle variable dans une autre page :
              <?php
              define('_JEXEC', 1);
              define('JPATH_BASE', '.');
              require_once JPATH_BASE . '/includes/defines.php';
              require_once JPATH_BASE . '/includes/framework.php';

              $app = JFactory::getApplication('site');

              $session = JFactory::getSession();
              echo $session->get('nom');
              ?>



              Si l'on met la page dans un répertoire il faut modifier la ligne

              define('JPATH_BASE', '.');

              en :

              define('JPATH_BASE', '/home/truc/joomla/administrator');

              il y a peut être un autre ligne plus simple mais ça sa marche


              S'il y a dans erreur ou du superflu dans le code, n'hésité pas a le dire

              Xavier

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X