2012-04-21 2 views
0

나는 여러 PHP 스크립트를 만들고 있습니다. 나는 항상 동일한 데이터베이스와 테이블에 대한 모든 스크립트에 대해 호스트, 사용자 이름, 암호 등을 삽입해야합니까? 한 줄 또는 다른 방법으로 참조를 만드는 방법이 있습니까? 이 정보를 숨길 수 있습니까?비밀 번호, 사용자 이름 등의 모든 데이터베이스 정보를 숨길 수있는 방법이 있습니까?

$host="XXXXXXXXX"; 
$username="XXXXX"; 
$password="XXXXX"; 
$db_name="XXXXXX"; 
$tbl_name="XXXXX"; 
mysql_connect("$host", "$username", "$password") or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 
+1

이 * 누구를 숨기려면 *? – zerkms

+0

기술적으로 누구나 내 스크립트에 대한 링크를 따라 내 정보를 찾을 수 있습니까? 예? – Erik

+0

링크를 따르면 소스를 볼 수있는 것은 아닙니다. Stackoverflow 소스를 볼 수 있습니까? – zerkms

답변

3

PHP 파일이 실행되어 소스 코드가 웹에서 볼 수 없지만 실수로 잘못 설정하면이 설정이 변경 될 수 있습니다. DB 구성을 서버의 문서 루트 디렉토리 외부에있는 파일에 넣고 PHP의 require 명령을 사용하여 다른 스크립트에 포함 할 수 있습니다.

그러나 PHP 구성에 따라 docroot 외부의 파일에는 PHP 스크립트에서 액세스 할 수 없지만이 문제를 해결하는 방법이 있습니다. This SO question이 이슈에 대해 자세히 설명합니다.

1

php 파일에 자격 증명을 넣지 않으려면 php.ini 구성 파일을 넣을 수 있습니다. PHP 소스에서 다음

mysql.default_host = "localhost" 
mysql.default_user = "user" 
mysql.default_password = "pass" 

:

<?php 

$connect_db = mysql_connect(); 
$err = mysql_error(); 
if ($err != "") 
{ 
     echo "Error connecting to database: $err"; 
     die; 
} 

if (!mysql_select_db("mydomain_com_test", $connect_db)) 
{ 
     echo mysql_error()."<br/>"; 
     die; 
} 

$sql = "SELECT NOW()"; 
$rows = mysql_query($sql); 

?> 
관련 문제