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

PHP & Base de données Discussion :

PHP et Mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2017
    Messages : 53
    Par défaut PHP et Mysql
    Bonjour,

    Je rencontre un problème quand je veux améliorer mon script php qui est relié à une base de données MYSQL, actuellement tout est opérationnel.
    Mais je voudrais pouvoir le rendre plus sécurisé, je m'explique pour pouvoir me connecter à ma base de données MYSQL j'ai mis directement dans .php le code suivant (pas très propre):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $link = mysqli_connect("localhost", "bdd", "pwd","bdd");
    Comme vous pouvez le constater tout cela n'est pas très sécurisé donc je me suis dis pourquoi ne pas tout cacher en le mettant dans la conf apache
    Voici ce que j'ai fait dans mon apache2.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    php_value mysql.default.user      bdd
    php_value mysql.default.password  pwd
    php_value mysql.default.host      localhost
    Voici ce que j'ai mis dans mon script .php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $link = mysqli_connect(ini_get("mysql.default.user"),
                         ini_get("mysql.default.password"),
                         ini_get("mysql.default.host"));
     
    echo "test debut affichage variables";
    echo (ini_get("mysql.default.user"));
    echo (ini_get("mysql.default.password"));
    echo (ini_get("mysql.default.host"));
    echo "test fin affichage variables";
    J'ai également essayé avec cela mais sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $link = mysqli_connect();
    Bien entendu il ne m'affiche pas les echo avec les variables, j'ai impression qu'il n'arrive pas à lire le fichier apache2.conf

    Quelqu'un aurait-il une idée ?

    Je vous remercie pour votre aide à tous

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    php_value & php_flag sont des proprités pour modifier la config PHP, pas pour définir des variables.
    D'autre part, ini_get() sert à lire la config php.ini
    C'est un peu comme si vous écriviez vos config dans une lettre manuscrite et puis que vous lisiez vos mails pour essayer de lire ce que dit la lettre.

    De plus, l'un comme l'autre dépendent de la façon dont est exécuté Apache & PHP (mod_php, cgi, fcgid ?)

    Cependant, il est possible de définir des variables d'environnement dans Apache : http://httpd.apache.org/docs/current/env.html
    Et ensuite de les récupérer en PHP : https://www.php.net/manual/fr/functi...che-getenv.php

    Sinon vous pouvez faire simplement comme à peu près tout le monde fait, créez un fichier de config en PHP où vos storez les détails.

  3. #3
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    Citation Envoyé par darkstar123456 Voir le message
    Sinon vous pouvez faire simplement comme à peu près tout le monde fait, créez un fichier de config en PHP où vos storez les détails.
    +1

    D'autre part, on met généralement la connexion dans une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function conn_bdd()
    {
      $servername = "localhost";
      $username = "username";
      $password = "password";
     
      // Create connection
      $conn = new mysqli($servername, $username, $password);
     
      // Check connection
      if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
      }
      return $conn;
    }
    et dans les fichiers, on a simplement :

  4. #4
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2017
    Messages : 53
    Par défaut
    Merci à vous deux

    J'ai opté pour une fonction dans un fichier de conf, car il faut que je le déploie partout.

    Encore merci passez une très bonne fin d'aprem

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    En effet, c'est mieux d'éviter les configs spécifiques à un serveur.

    Perso j'ai un fichier ~/env/settings.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [database]
    host = 127.0.0.1
    port = 3306
    dbname = mydatabase
    user = username
    password = userpassword
    ...
    Que je charge avec parse_ini_file()

    D'autres chargent du JSON, du XML, etc. ou même directement un tableau PHP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SGBD] requête sql en php pour mysql
    Par Thierry8 dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/09/2005, 22h31
  2. [SGBD] Probleme Avec Php et Mysql
    Par junior258 dans le forum Installation
    Réponses: 2
    Dernier message: 20/09/2005, 10h39
  3. Serv apach 2, php 5, mysql 4
    Par Bouki dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 24/06/2005, 15h32
  4. Travailler avec PHP / Apache / MySQL
    Par R3iTt0R dans le forum Linux
    Réponses: 22
    Dernier message: 24/06/2004, 11h03

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