2010-02-18 2 views

Répondre

7

Le meilleur endroit pour le stocker est l'OMI dans un fichier PHP (si vous utilisez require ou include chercher peu importe) en dehors de la racine web, ce ne sont pas directement accessibles dans le navigateur .

<?php 

    $db_server = "xyz"; 
    $db_user = "def"; 
    $db_password = "abc"; 

?> 

S'il n'y a pas accès à l'extérieur de la racine web

@Yacoby a écrit ceci dans sa réponse. Il l'a supprimé depuis, mais il mérite certainement d'être mentionné.

Il existe des fournisseurs d'hébergement idiots qui n'autorisent pas l'accès en dehors de la racine Web. Dans ce cas, vous placez le fichier de configuration dans un répertoire de votre site Web et protégez-le à l'aide d'un fichier .htaccess contenant Deny from All. Cela fonctionne sur la plupart des packs d'hébergement. Assurez-vous de le tester cependant, vous devriez obtenir un 403 Forbidden en essayant d'accéder à ce fichier.

+0

me battre de 20 secondes –

+0

Super juste ce que je pensais, merci pour votre aide :) –

1

C'est ce que je fais habituellement:

  • Mettre en place le projet de sorte que le site est un sous-dossier du projet. De cette façon, vous pouvez avoir toutes les classes PHP et fichiers de configuration en dehors du dossier racine Web.
  • Avoir un fichier config.php avec un tableau d'informations d'identification de base de données. Par exemple:
 
$databases = array(
     "read" => array("host" => "127.0.0.1", 
         "user" => "read", 
         "pword"=> "secret", 
         "dbase"=> "projectName"));
  • étendez la classe AOP (ou créer une nouvelle classe) appelée base de données qui a un constructeur avec un argument.
 
class Database extends PDO{ 
    function __construct($database){ 
    global $databases; 
    $db = $databases[$database]; 
    parent::__construct("mysql:dbname=".$db['dbase'].";host=".$db['host'], 
         $db['user'], $db['pword']); 
    } 
} 

vous pouvez maintenant passer la clé de tableau à l'une des références de base de données comme un argument au constructeur de la classe de base de données, puis il signera avec ces détails. Cela signifie que vous pouvez avoir plusieurs utilisateurs pour accéder à la base de données (une pour la lecture, et une pour l'écriture).

Questions connexes