Appel à une classe externe

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

  • Appel à une classe externe

    Bonjour à tous
    J'ai passé mon site en joomla 4 et j'ai un soucis lors de l'appel d'une classe externe
    cela fonctionnait bien en joomla 3 et là j'ai une erreur 500 lors des includes
    je procède de la sorte :

    define( '_JEXEC', 1 );
    define('JPATH_BASE', dirname(__DIR__));
    define( 'DS', DIRECTORY_SEPARATOR );

    require_once ( JPATH_BASE .DS.'includes'.DS.'app.php' );
    require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

    je ne comprend pas pourquoi cela ne fonctionne plus. Si quelqu'un a rencontre le problème et trouver une solution je suis preneur.
    Merci

  • #2
    Bonjour

    Avec si peu d'informations, impossible de t'aider.

    Déjà, as-tu vérifié si les fichiers includes/app.php et includes/framework.php existe ? (même si je doute que cela ne soit pas le cas).

    Cherche à trouver où se cache le log des erreurs Apache sur ton serveur et ouvre-le pour y trouver plus d'informations concernant cette erreur 500.

    Note: une erreur 500, c'est donc une erreur côté serveur. Il y a donc quelque chose au niveau de sa configuration / utilisation qui a planté. Reste à trouver quoi grâce justement au log des erreurs.
    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


    • #3
      Bonjour

      Merci pour ta réponse. Oui les fichiers existent bien .

      Je test en local pour le moment. je vais me pencher sur le log des erreurs.

      Commentaire


      • #4
        Aucune erreur dans le log...

        Commentaire


        • #5
          Envoyé par diabloedesign Voir le message
          Aucune erreur dans le log...
          Impossible... Une erreur 500 est enregistrée dans le log d'erreurs (je l'avais expressément écrit deux fois; trois donc maintenant). Le log des erreurs (quatrième ;-)); pas le log des accès. Puisque vous êtes en local, voyez dans les options de votre client web (wamp? easyphp? laragon? ...).

          (Note: merci de ne pas envoyer de MPs à quiconque excepté si cette personne vous a autorisé à le faire; nous sommes sur un forum; l'aide se passe au travers du forum; pas en MP).
          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


          • #6
            Bonjour cavo789
            Je suis sur xampp v3.3.0
            je regarde error.log apache
            j'appelle ma classe externe avec ce script :

            var xhr = new XMLHttpRequest();
            var fd = new FormData();
            xhr.open("POST", url, true);
            xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
            // Every thing ok
            console.log(xhr.responseText); // handle response.
            if (xhr.responseText != 0) {
            $jct('.chargement').remove();
            $jct('.gallery').append(xhr.responseText);
            } else{
            alert('Problème de connexion à la base de donnée');
            }
            }
            };
            fd.append("imgid", id);
            xhr.send(fd);

            désolé pour le MP

            Commentaire


            • #7
              Bonjour

              Ok, on reprends.... Vous dites "J'ai une erreur 500" et que "je regarde error.log apache". Est-ce que ce fichier contient quelque chose ? Il ne devrait pas en être autrement, une erreur fatale (500) fait l'objet d'un ajout dans le log des erreurs.

              Vous donnez ci-dessus un code javascript. Ce code n'est pas du code serveur mais client; ce n'est pas ce code qui provoque l'erreur ... toutefois ... vous faites à un appel à votre site au travers de xhr.open("POST", url, true) càd que vous accéder à l'url "url" pour poster un formulaire. Quel est le contenu de la variable "url" ? Selon toutes vraisemblances, c'est cette URL-là qui provoque l'erreur.

              Et je ne pourrais pas aider davantage tant que votre fichier d'erreur n'indique aucune informations pertinentes. C'est comme chercher une aiguille dans une botte de foin.

              Pour résumer : l'url "url" est celle qui semble provoquer le problème. Tentez d'accéder à cette URL directement, sans passer par Javascript/ajax, juste en tapant l'URL dans la barre d'adresse de votre navigateur. Et voyez ce que cela donne. Remarque : procédez comme je le suggère correspond à un "GET" alors que votre code javascript fait un "POST". Le test pourrait donc ne pas mettre en évidence le souci.

              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


              • #8
                j'ai essayer d'executer la classe directement et j'ai toujours erreur 500 cependant je pense que l'erreur se trouve dans l'appel de defines.php mais je ne comprend pas pourquoi.
                quand j'enlève la ligne "require JPATH_BASE . '/includes/defines.php';" je n'ai plus d'erreur 500 mais une erreur php lors de "require JPATH_BASE . '/includes/framework.php';" ce qui du coup est logique.
                si je laisse le defines.php j'ai une erreur 500 mais je ne retrouve pas d'erreur dans le log. j'avoue que je ne comprend pas pourquoi. j'ai pourtant bien l'erreur php de quand je l'enlève...
                je vais faire un compte de test sur mon serveur ovh

                Commentaire


                • #9
                  bonjour,
                  n'étant pas dev de métier, j avais vu que les définitions ont changées....
                  When checking my extension i show this Compatibility Issue "DS is deprecated in Joomla 3" But i always use the DS constant with another command at the begining of my code to be compatible with all ...


                  Commentaire


                  • #10
                    Bonjour lefabdu51
                    j'ai été voir et je fais de la même manière mais ça ne change rien.

                    ci-dessous le code en début de classe:

                    use Joomla\CMS\Factory;
                    use Joomla\CMS\Plugin\PluginHelper;
                    use Joomla\CMS\Session\Session;
                    use Joomla\Registry\Registry;
                    use Joomla\Event\Dispatcher;

                    if ( !defined('_JEXEC'))
                    define( '_JEXEC', 1 );

                    // Setup the base path to the Joomla installation
                    if ( !defined('JPATH_BASE')) {
                    define('JPATH_BASE', dirname(__DIR__));

                    }
                    /* Bootstrap joomla */
                    require_once(JPATH_BASE . '/includes/defines.php');
                    require_once(JPATH_BASE . '/includes/framework.php');

                    Commentaire


                    • #11
                      cavo789 j'ai fais un compte test : https://diabloedesign-test.fr/nos-realisations.html
                      l'erreur se produit en cliquant sur afficher plus de site ou sur une des images.
                      je suis désolé mais il n'y aucune erreur qui s'affiche dans le fichier error sur ovh.

                      comme je le disais plus haut l'erreur 500 se produit avec require_once(JPATH_BASE . '/includes/defines.php');
                      si je l'enlève je n'ai plus l'erreur 500 mais forcément une erreur php lors du require_once(JPATH_BASE . '/includes/framework.php');

                      je n'y comprend rien

                      Commentaire

                      Annonce

                      Réduire
                      Aucune annonce pour le moment.

                      Partenaire de l'association

                      Réduire

                      Hébergeur Web PlanetHoster
                      Travaille ...
                      X