2012-04-21 6 views
0

私はいくつかのPHPスクリプトを作成しています。同じデータベースとテーブルのすべてのスクリプトに、常にホスト、ユーザー名、パスワードなどを挿入する必要がありますか? 1つの行または他の方法で参照する方法はありますか?この情報を隠すのにとに​​かくありますか?パスワード、ユーザー名などのすべてのデータベース情報を非表示にする方法はありますか?

$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ファイルが実行され、ソースコードがWebから見えない間に、誤った構成変更がこれを変更する可能性があります。 DBコンフィグレーションを別のファイルのwbeserverのドキュメントルートディレクトリの外側に置き、PHPのrequireコマンドを使用して他のスクリプトに含めることができます。

ただし、PHPの設定によっては、docroot以外のファイルにPHPスクリプトからアクセスできない場合がありますが、そのための方法があります。 This SO questionがこれらの問題について詳しく説明しています

1

phpファイルに認証情報を入れたくない場合は、php.ini設定ファイルを置くことができます。

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

その後、PHPのソースに:

<?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); 

?> 
関連する問題