2012-11-11 9 views
8

आप डेटाबेस कनेक्शन के लिए कनेक्शन सेटिंग्स कहां रखते हैं (मेजबान, dbname, उपयोगकर्ता, पासवर्ड जैसी चीजें)? क्या यह डेटाबेस क्लास या फ़ाइल में है, या कॉन्फ़िगरेशन फ़ाइल में बाहर है, या कहीं और?डेटाबेस कनेक्शन सेटिंग्स कहां रखना है?

+0

यह आपके कार्यान्वयन पर निर्भर करता है ... आप एक सेटिंग फ़ाइल में डाल सकते हैं ताकि आप जब भी चाहें अनुकूलित कर सकें। या यदि आप ओओपी से प्यार करते हैं तो आप कक्षा का भी उपयोग कर सकते हैं .. लेकिन संभवतः सेटिंग्स फ़ाइल का उपयोग किया जाता है। – Pratik

+2

मैं आमतौर पर इसे वेब रूट के बाहर एक फ़ाइल में डालता हूं, और फिर इसे उस एप्लिकेशन में शामिल करता हूं जिसमें मुझे इसकी आवश्यकता होती है। यह वेब पर गलती से उजागर होने से थोड़ा अधिक सुरक्षित बनाता है, और गुणक अनुप्रयोगों को उसी सेटिंग का उपयोग करने की अनुमति देता है जहां यह बदलकर कि एक फ़ाइल सभी ऐप्स डीबी सेटिंग्स को अद्यतित रखेगी। –

उत्तर

3

यह कई तरीकों से किया जा सकता है, लेकिन इसे सामान्य सेटिंग्स में रखना है, और उस फ़ाइल को वेबूट के बाहर रखना है, ताकि डेटाबेस पासवर्ड के बारे में जानकारी गलती से वेब में लीक न हो।

5

आदर्श रूप से, आपको इसे एक कॉन्फ़िगरेशन फ़ाइल में रखना चाहिए, जो एक PHP सरणी के रूप में सरल हो सकता है।

उदाहरण के लिए: db_config.php

$db_config = array(
    'host' => 'localhost', 
    'user' => 'username', 
    'password' => 'qwerty' 
); 

फिर आप अधिकतम सुरक्षा के लिए अपने दस्तावेज़ जड़ बाहर इस फाइल से देना चाहिए। इस तरह, यदि आपका वेबहोस्ट आपको विफल करता है और PHP फ़ाइलों को टेक्स्ट फ़ाइलों (होता है) के रूप में सेवा करना शुरू करता है, तो कोई भी आपके डीबी प्रमाण-पत्र प्राप्त नहीं कर सकता है।

+0

हाय आपके उत्तर के लिए धन्यवाद। क्या इसे वैश्विक स्तर पर लागू किया जाएगा या कुछ और होगा। –

+0

@DaryllSantos आपको फ़ाइल को तब और साथ ही शामिल करना होगा जब आपको इसकी आवश्यकता हो। – xbonez

1

यह कर तरीकों का एक बहुत हैं, लेकिन मैं इसे परिभाषित करने स्थिरांक द्वारा इस तरह से कार्य करें:

Create a config/db.php 

<?php 
define('DB_INFO','mysql:host=localhost;dbname=test'); 
define('DB_USER','root'); 
define('DB_PASS',''); 
1

PostgreSQL के लिए, मैं वास्तव में pg_service.conf का उपयोग करना चाहते। यह मुझे सभी कनेक्शन विशिष्ट सेटिंग्स (होस्टनाम, डेटाबेस नाम, उपयोगकर्ता नाम, पासवर्ड, आदि) ~/.pg_service.conf या /etc/postgresql-common/pg_service.conf में रखने और उन्हें सामान्य नाम (सेवा का नाम) देने की अनुमति देता है।

अब, किसी भी प्रोग्राम (पर्ल, पीएचपी, आदि) जो डेटाबेस से कनेक्ट करना चाहता है, बस "service=name" को उनके कनेक्शन स्ट्रिंग के रूप में निर्दिष्ट कर सकता है - अच्छा, साफ, सुरक्षित और आसानी से बनाए रखने योग्य।

जहाँ तक मुझे पता है, MySQL ~/my.cnf या /etc/my.cnf फ़ाइलों के लिए समान तंत्र है - आपको लगता है कि इस पर गौर कर सकते हैं।

संबंधित मुद्दे