Connexion BDD
Fermé
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
24 nov. 2014 à 12:57
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 24 nov. 2014 à 23:27
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 24 nov. 2014 à 23:27
A voir également:
- Connexion BDD
- Gmail connexion - Guide
- Hotmail connexion - Guide
- Facebook connexion - Guide
- Coco.fr connexion - Forum Réseaux sociaux
- Gps sans connexion - Guide
3 réponses
jordane45
Messages postés
38160
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2024
4 657
Modifié par jordane45 le 24/11/2014 à 13:45
Modifié par jordane45 le 24/11/2014 à 13:45
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
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
24 nov. 2014 à 17:03
24 nov. 2014 à 17:03
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
jordane45
Messages postés
38160
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2024
4 657
24 nov. 2014 à 17:20
24 nov. 2014 à 17:20
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...
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
Modifié par papyclic le 24/11/2014 à 23:28
Modifié par papyclic le 24/11/2014 à 23:28
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