IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Connexion à une base de donnée en POO via file.ini


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Connexion à une base de donnée en POO via file.ini
    Bonjour,

    J'essaye de me connecter à une base de donnée via un fichier.ini. Cette connexion s'effectue grâce à une classe Database.php mais je n'arrive pas bien saisir le principe qui se cache là derrière... Voici mes fichiers :

    config.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    host = ...
    username = ...
    password = ...
    dbname = ...
    database_connection.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    	$config = parse_ini_file('mypathto/config.ini');
    	include_once("../class/Database.php");
    	//include 'query.php';
    	$host = $config['host'];
    	$username = $config['username'];
    	$password = $config['password'];
    	$database = $config['dbname'];
    	function connect(){
    		$db = new Database($host,$username,$password,$database);
    		return $db;
    	}
    ?>
    Database.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Database{
    	private $con;
    	public function __construct($host,$username,$password,$database){
    		$this->con = new PDO("mysql:host=" .$host. ";dbname=".$database,$username,$password,
    		array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
    	}
             ...
    }
    Et alors dans un fichier j'essaye de m'y connecter de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    include_once("database_connection.php");
    $db = connect();

    Mais la connexion ne s'effectue pas. Ais-je loupé quelque chose ? Dois-je m'y prendre d'une autre manière ? Je suis un peu dans le brouillard pour l'instant et j'aimerais qu'on m'éclaire un peu

  2. #2
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Points : 747
    Points
    747
    Par défaut
    (EDIT)

    Dans ta fonction connect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $host = $config['host'];
    	$username = $config['username'];
    	$password = $config['password'];
    	$database = $config['dbname'];
    	function connect(){
                    global $host, $username, $password, $database;
    		$db = new Database($host,$username,$password,$database);
    		return $db;
    	}
    ou plus simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function connect(){
                    global $config;
    		$db = new Database($config['host'], $config['username'], $config['password'], $config['dbname']);
    		return $db;
    	}

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    As-tu fais le debugage minimum ?
    - verifier que le code passe bien par l'étape de connexion
    - activer les erreurs PDO

    Utiliser un fichier .ini n'est pas forcement judicieux, si le dossier n'est pas bien sécurisé, le fichier est accessible.
    Inclure un fichier .php est plus simple et plus efficace.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Undefined variable: ... in database_connection.php

    Dans un premier temps je crois comprendre qu'une de mes erreurs est qu'on ne peut pas envoyer des variable à une fonction de cette manière.

    J'ai donc modifié mon database_connection.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $config = parse_ini_file('C:\wamp\www\proto\admin\config.ini');	
    include_once("C:/wamp/www/proto/class/Database.php"); 
    function connect(){
    	$config = parse_ini_file('C:\wamp\www\proto\admin\config.ini');	
    	$host = $config['host'];
    	$username = $config['username'];
    	$password = $config['password'];
    	$database = $config['dbname'];	
    	$db = new Database($host,$username,$password,$database);
    	return $db;
    }
    ?>
    Et là ça va beaucoup mieux, j'ai du modifier 2-3 scripts mais ça passe niquel.


    Mais est-ce sécurisé d'utiliser une fonction de cette manière ?

Discussions similaires

  1. [XE7] Connexion à une base de données SQL Server via ODBC pour plate-forme cible OS X
    Par Ptite Développeuse dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/01/2015, 15h23
  2. Réponses: 0
    Dernier message: 15/07/2013, 12h21
  3. Réponses: 8
    Dernier message: 03/06/2010, 19h01
  4. Connexion à une base de données mysql via access
    Par eautret dans le forum Access
    Réponses: 2
    Dernier message: 07/04/2006, 10h02
  5. [VB6]connexion à une base de données distant via ADO
    Par alaminabil1 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2006, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo