Nasıl tipik CMS veritabanı kimlik PHP üzerine inşa saklamak?

3 Cevap php

Bir CMS veritabanı kimlik bilgilerini depolamak için en iyi yöntem nedir? Şimdi benim Veritabanı tekiz sınıfta onları beyan:

Bu-> kimlik = array ("hostname" => "hostname", "username" => "kullanıcı adı", "parola" => "parola", "veri tabanı" => "Veritabanı") $;

Ama nerede onları değiştirmek için ve aynı zamanda daha sonra cms için inmstall dosyayı bakıyorlar planlıyorum aramak çok kolay değil. Nerede ve nasıl bağlantı Prefrences saklamak?

3 Cevap

Eğer belirtildiği gibi, bir tek sınıf kullanmak, ya da basit bir şey olabilir.

Bütün config.inc.php dosyaları Ben standart bir ilişkisel dizi var

$config['Main_Database'] = '';
$config['db_user'] = '';
$config['db_pass'] = '';
$config['db_host'] = '';

Kavram aynı ve doğru yoldayız. Bir insan olarak, sizin için mantıklı bir şey yapın. Birisi sunucusu daha güvenli şartlarda ne büyük bir anlaşma değil yani senin zaten vidalı erişimi varsa.

Install dosyası gelince, geri (yerine "bir ayarı kaydetmek" den) sunucuya dosyayı yeniden yazmak, aslında sonra kod üzerinden birkaç belirli bölümlerini ayarlamak ve çok uygulamanın config dosyasını açmak gördüm. Bu aynı sonuca ulaştırır ama elle aksine bir sihirbaz aracılığıyla yapılır.

CakePHP database.php adında bir yapılandırma dosyası kullanır (/ app / config / in), hangi bir DATABASE_CONFIG sınıf ilan edilir:

class DATABASE_CONFIG {

    var $default = array(
    	'driver' => 'mysql',
    	'persistent' => false,
    	'host' => 'localhost',
    	'login' => 'user',
    	'password' => 'password',
    	'database' => 'database_name',
    	'prefix' => '',
    );

    var $test = array(
    	'driver' => 'mysql',
    	'persistent' => false,
    	'host' => 'localhost',
    	'login' => 'user',
    	'password' => 'password',
    	'database' => 'test_database_name',
    	'prefix' => '',
    );
}

Bu sezgisel bir dizin yapısı bariz nerede veritabanı yapılandırmaları saklanır yapar iken kullanıcı tüm veritabanı yapılandırmaları ayarlayabilirsiniz tek bir yer oluşturur. Ve ayrıca arasında geçiş yapmak kolay üretim, geliştirme ve test amaçlı çoklu konfigürasyonlar, belirtebilirsiniz.

Genel bir kural olarak, kaynak koduna doğrudan kimlik koymayın, ama configueration dosyalarda saklayabilirsiniz. Bu farklı bir veritabanına bağlanmak (olmalı) olabilir test makinesi, için geliştirme makine hareket edildiğinde çok daha kolay, örneğin, bunları değiştirmek için yapar.

Bu yapılandırma dosyası webroota dizini dışında bir yerde saklanmalıdır.

Ayrıca yapılandırma dosyası tehlikeye olsun demek durumunda biraz daha fazla güvenlik için, bir şekilde şifresini şifreleyebilirsiniz. Biri sunucuya fiziksel erişimi alırsa, diğer yandan, zaten mahvolduk, bu yüzden değer olmayabilir.