Connexion BDD
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai ma connexion avec ma BDD, mais je voudrais pouvoir avoir un seul fichier qui me connecte en local et avec une condition qui me connecte également à mon serveur.
Est il possible de faire un truc comme ça ou on ne pas mettre de condition dans une class.
Pouvez vous me donner votre avis ou me dire comment je pourrais m'y prendre.
En vous remerciant
J'ai ma connexion avec ma BDD, mais je voudrais pouvoir avoir un seul fichier qui me connecte en local et avec une condition qui me connecte également à mon serveur.
Est il possible de faire un truc comme ça ou on ne pas mettre de condition dans une class.
Pouvez vous me donner votre avis ou me dire comment je pourrais m'y prendre.
En vous remerciant
<?php class Config { if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') { const HOTE = 'localhost'; const DBNAME = 'mon_site'; const USERNAME = 'root'; const PASSWORD = ''; } else { const HOTE ='nom_serveur'; const DBNAME ='mon_site'; const USERNAME ='mon_site'; const PASSWORD ='mot_passe'; } } ?>
A voir également:
- Connexion BDD
- Gmail connexion - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Connexion sctr - Forum Discord
3 réponses
Bonjour,
Perso, j'utilise une fonction
Puis, pour obtenir les variables à utiliser en fonction de là où je me connecte...
... bien sûr.. tu peux remplacer les $PDO... par tes définitions de constantes...
Ta solution peut marcher également...
Sauf que tu n'as pas mis, dans ta class de constructeur... et c'est surement ça qui te manque pour l'instant...
Quelque chose du genre devrait pouvoir marcher...
(toutes fois.. il te manque quand même le LocalHost en plus de l'IP ... )
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Perso, j'utilise une fonction
function whereImI(){ $maps =array( 'LOCAL'=>array('localhost','127.0.0.1','0.0.0.1','::0.0.0.0') ,'LAN'=>array('mon_ip_serveur','monsite.fr') ); //$return = 'UNKNOWN'; foreach($maps as $map=>$values){ foreach($values as $ip){ $pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip); if ($pos!==false){ $return = $map; } } } return $return; }
Puis, pour obtenir les variables à utiliser en fonction de là où je me connecte...
$whereImI = whereImI(); switch($whereImI){ case 'LOCAL': $PDO_dbName = "maBdd"; $PDO_user="root"; $PDO_passw=""; $PDO_dsn="mysql:dbname=".$PDO_dbName.";host=localhost"; break; case 'LAN': //Identifiants DB (Mysql via PDO) - variables globales $PDO_dbName = "maBdd"; $PDO_user="monUser"; $PDO_passw="monPwd"; $PDO_dsn="mysql:dbname=".$PDO_dbName.";host=193.56.241.56"; break; }
... bien sûr.. tu peux remplacer les $PDO... par tes définitions de constantes...
Ta solution peut marcher également...
Sauf que tu n'as pas mis, dans ta class de constructeur... et c'est surement ça qui te manque pour l'instant...
Quelque chose du genre devrait pouvoir marcher...
(toutes fois.. il te manque quand même le LocalHost en plus de l'IP ... )
<?php class Config { function __construct(){ if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') { const HOTE = 'localhost'; const DBNAME = 'mon_site'; const USERNAME = 'root'; const PASSWORD = ''; } else { const HOTE ='nom_serveur'; const DBNAME ='mon_site'; const USERNAME ='mon_site'; const PASSWORD ='mot_passe'; } } // FIN DE LA CLASS }
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Bonjour
Merci pour ta réponse,je n'arrive pas à faire fonctionner si tu peux encore m'aider.
En fait voilà j'ai 2 fichiers
Merci
Merci pour ta réponse,je n'arrive pas à faire fonctionner si tu peux encore m'aider.
En fait voilà j'ai 2 fichiers
class Config { public function __construct() { if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') { const HOTE = 'localhost'; const DBNAME = 'mpon_site'; const USERNAME = 'root'; const PASSWORD = ''; } else { const HOTE =**************'; const DBNAME ='***********'; const USERNAME =***********'; const PASSWORD =**********'; } } }
class Database extends PDO { public function __construct() { try { parent::__construct('mysql:host=' . Config::HOTE . ';dbname=' . Config::DBNAME, Config::USERNAME, Config::PASSWORD); $this->exec("SET CHARACTER SET utf8"); $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); } catch(Exception $e) { echo 'Impossible de se connecter à la base de donnée</br>'; echo 'Erreur : ' . $e->getMessage() . '<br />'; echo 'N° : ' . $e->getCode(); } } } ?>
Merci
Config::HOTE
????
Si tu veux utiliser HOTE comme une "propriété" de ta class CONFIG .. il faut le déclarer comme tel...
class Config { function __construct(){ public $_HOTE='', $_DBNAME='' , $_USERNAME='' , $_PASSWORD=''; if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') { $this->_HOTE = 'localhost'; $this->_DBNAME = 'mon_site'; $this->_USERNAME = 'root'; $this->_PASSWORD = ''; } else { $this->_HOTE ='nom_serveur'; $this->_DBNAME ='mon_site'; $this->_USERNAME ='mon_site'; $this->_PASSWORD ='mot_passe'; } }
PS : Il n'y a pas de " public " devant la construct !
PS2 : Avant d'aller plus en avant.. je pense qu'une lecture de quelques tutos sur l'utilisation des class en php te sera nécessaire car il semble que tu n'en connaisse pas le fonctionnement...
Bonjour
J'ai regarder des tutos sur les class je ne comprends pas tous, c'est pas évident, par rapport à php procédural .Je souhaiterai quand même essayer de refaire mon site avec classe POO.
Mais ça commence mal par contre j'arrive à me connecter avec le fichier et l'objet Config
mais j'aimerai faire un seul et unique fichier pour le local et mon serveur.
J'ai essayé ta proposition ci-dessus mais toujours impossible.
Alors si tu peux me rendre se service s'il te plait.
Sinon tant pis je ferai un deuxième fichier pour mon serveur.
Je te remercie
J'ai regarder des tutos sur les class je ne comprends pas tous, c'est pas évident, par rapport à php procédural .Je souhaiterai quand même essayer de refaire mon site avec classe POO.
Mais ça commence mal par contre j'arrive à me connecter avec le fichier et l'objet Config
<?php class Config { const HOTE = 'localhost'; const DBNAME = mon_site'; const USERNAME = 'root'; const PASSWORD = ''; } ?>
mais j'aimerai faire un seul et unique fichier pour le local et mon serveur.
J'ai essayé ta proposition ci-dessus mais toujours impossible.
Alors si tu peux me rendre se service s'il te plait.
Sinon tant pis je ferai un deuxième fichier pour mon serveur.
Je te remercie