Récupérer les variable de connexion à la BDD

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

  • Récupérer les variable de connexion à la BDD

    Bonjour,
    J'ai besoin de récupérer les infos de connexion à ma BDD pour les utiliser dans un fichier PHP

    J'ai fais cela dans le fichier PHP qui doit utiliser ces informations mais cela ne fonctionne pas:

    Code PHP:
    include '..\configuration.php';
    echo 
    "Serveur $host"
    Je n'affiche pas le nom du serveur.

    Quelqu'un saurait-il m'aider ?

    Merci beaucoup.

    Cordialement.

    Eric

  • #2
    Re : Récupérer les variable de connexion à la BDD

    Bonjour,

    configuration.php contient uniquement une classe, JConfig.

    Donc pour récupérer des variables d'instance de la classe:
    Code PHP:
    <?php

    require_once '../configuration.php' ;
    $config =new JConfig();

    echo 
    'Serveur : ' $config->host '<br />' ;
    Mais vouloir utiliser directement configuration.php pour intervenir avec des appels genre mysql_connect et compagnie est une hérésie.

    Il est plus conforme à l'API du CMS d'utiliser
    Code PHP:
    define('_JEXEC'1);
    define('JPATH_BASE'__DIR__ '/;;');
    require_once 
    JPATH_BASE '/includes/defines.php';
    require_once 
    JPATH_BASE '/includes/framework.php';

    $db JFactory::getDbo();

    // ensuite ton code de gestion sur l'objet $db en respectant les APIs 
    Voir https://docs.joomla.org/Accessing_th...sing_JDatabase
    Dernière édition par jisse03 à 13/02/2016, 18h37
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Récupérer les variable de connexion à la BDD

      Bonsoir Jisse03,

      Merci beaucoup, j'ai essayé la première solution mais cela provoque une erreur sur mon fichier PHP, tout ce qui est placé après ce code ne s'affiche plus.

      Je vais essayer la deuxième, mais je fais quoi ? je remplace simplement mon include et mon echo par le code que tu me suggères ?

      Cordialement.

      Eric
      Dernière édition par Agrepe à 13/02/2016, 18h41

      Commentaire


      • #4
        Re : Récupérer les variable de connexion à la BDD

        Sans savoir exactement ce que tu veux bricoler, impossible de savoir. Si tu as des erreurs dans ton PHP en utilisant soit la méthode de l'objet JConfig, et plus encore en respectant les APIs, c'est que ton code PHP est bancale et donc qu'il ne fonctionnera pas sans être corrigé.

        Lorsqu'on veut s'interfacer avec un CMS, il est IMPÉRATIF d'en suivre le modèle sous peine de très grosses difficultés.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Récupérer les variable de connexion à la BDD

          En fait ce que je veux c'est me connecter à la table Users pour récupérer des infos.

          Je me connecte, mais j'aimerai que les infos de connexion dans ma ligne:

          $bdd = new PDO('mysql:host=serveur;dbname=nom_de_la_base=utf8 ', 'user','mot_de_passe');

          Soient récupérées dans le fichier configuration.php afin de rendre mon fichier universel.

          Cordialement.

          Eric

          Commentaire


          • #6
            Re : Récupérer les variable de connexion à la BDD

            Voici mon code PHP:
            J'ai mis en commentaire le code qui ne fonctionne pas.

            Code PHP:
            <?php

            //include '..\configuration.php';
            //echo "<strong>Le nom du serveur est :</strong> $host"; // Le nom du serveur est : agrepefogjcrm.mysql.db

            //Proposé par Jisse03 (Forum Joomla)
            //require_once '../configuration.php' ; 
            //$config =new JConfig(); 
            //echo 'Serveur : ' . $config->host . '<br />' ;

            try
            {
            // Connexion à la base de données
            $bdd = new PDO('mysql:host=nom_du_serveur;dbname=nom_de_la_base;charset=utf8''user','password');
            }
            catch(
            Exception $e)
            {
                
            // En cas d'erreur, on affiche un message et on arrête tout
                    
            die('Erreur : '.$e->getMessage());
            }

            $reponse $bdd->query('SELECT * FROM jpfc3_users');

            while (
            $donnees $reponse->fetch())
            {
            ?>
            <p>

                <strong>Mon nom est</strong> : <?php echo $donnees['username']; ?><br />
                Mon adresse email est : <?php echo $donnees['email']; ?>, et mon id est <?php echo $donnees['id']; ?> 
                Je me suis enregistré le <?php echo $donnees['registerDate']; ?>

            </p>
            <?php

            Commentaire


            • #7
              Re : Récupérer les variable de connexion à la BDD

              J'ai l'impression que tu n'as pas vraiment compris la logique des CMS...

              Si c'est dans la cadre du site que tu veux les infos sur le user connecté, il suffit, au lieu du $db = ... de faire
              Code PHP:
              $user JFactory::getUser() ; 
              Et là tu accèdes à toutes les infos sur le user concerné, via l'API JUser https://api.joomla.org/cms-3/classes/JUser.html

              En tant que règle essentielle, on doit TOUJOURS respecter les APIs de quelque système auquel on cherche à se connecter, qu'il s'agisse de Joomla!, WordPress, un logiciel CRM ou ERP... Le non respect des APIs peut conduire à des dommages graves tant dans la base de données que pour la sécurité générale.

              Oublies donc les appels directs à PDO, et utilises l'API à ta disposition. Certes, tu vas devoir adapter ton script PHP perso, mais c'est une autre règle en développement, les scripts ou routines doivent se conformar aux APIs et non l'inverse
              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Re : Récupérer les variable de connexion à la BDD

                Bonsoir, Effectivement, j'ai bien vu qu'avec Joomla c'était cette méthode de connexion qui était conseillée, mais je n'ai pas trouvé beaucoup d'infos à son sujet, alors j'ai essayé avec la méthode usuelle en PHP.
                Je vais essayer.
                Me suffit-il de remplacer ma ligne de connexion à la BDD par cette ligne ?

                Cordialement.
                Eric

                Commentaire


                • #9
                  Re : Récupérer les variable de connexion à la BDD

                  ce code ne peut fonctionner...
                  Code PHP:
                  <?php

                  define
                  ('_JEXEC'1);
                  define('JPATH_BASE'__DIR__ '/;;');
                  require_once 
                  JPATH_BASE '/includes/defines.php';
                  require_once 
                  JPATH_BASE '/includes/framework.php';

                  $db JFactory::getDbo():

                  $db->setQuery'SELECT * FROM #___users' );
                  $data $db->loadObjectList() ;

                  foreach ( 
                  $data AS $enr 
                  {
                      echo 
                  '<p style="border-bottom:1px solid #0">';
                      echo 
                  'Mon nom est : <strong>' $enr->username '</strong><br />' ;
                      
                  // etc...
                      
                  echo '</p>' ;
                  }
                  aurait grandement plus de chances de fonctionner correctement
                  Pas de demande de support par MP.
                  S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                  Commentaire


                  • #10
                    Re : Récupérer les variable de connexion à la BDD

                    Salut,
                    je me permettrai une petite correction du code de jisse, juste des typos :
                    Code PHP:
                     <?php

                    define
                    ('_JEXEC'1);
                    define('JPATH_BASE'__DIR__);
                    require_once 
                    JPATH_BASE '/includes/defines.php';
                    require_once 
                    JPATH_BASE '/includes/framework.php';

                    $db JFactory::getDbo();

                    $db->setQuery'SELECT * FROM #__users' );
                    $data $db->loadObjectList();

                    foreach ( 
                    $data AS $enr 
                    {
                        echo 
                    '<p style="border-bottom:1px solid #000">';
                        echo 
                    'Mon nom est : <strong>' $enr->username '</strong><br />' ;
                        echo 
                    '</p>' ;
                    }
                    Je teste toujours ce genre de bout de code via une extension custom code comme Sourcerer.

                    PS : Là, j'ai utilisé Jumi, comme d'hab, cette antique extension qui fonctionne toujours, même avec j!3.5 beta et php7. Comme quoi, qd le code est bon, il passe les années. Cela dit, je ne la recommande pas spécialement, n'ayant aucune idée de la sécurité du bidule.
                    Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                    Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X