2012-09-11 43 views
0

我想在我的PHP源代碼中混淆MySQL密碼,因爲它在Github上公開顯示。下面是我做的:從單獨文件讀取MySQL密碼

$pword = file_get_contents('../.brown_bag'); 
$obj->password = $pword; 

這是不行的,我得到一個拒絕訪問錯誤。文件.brown_bag僅包含一行僅包含一串字母的行。我很確定file_get_contents()沒有返回我預期的數據。我試圖編寫簡潔,簡單的代碼,因此避免了整個嚴重的問題。爲什麼這不起作用,還有更好的方法嗎?

+1

你確定你想要打開的文件是你認爲它的地方嗎?嘗試一個絕對路徑,看看是否有效? – andrewsi

+3

將密碼推送到github時,請將密碼留空。 –

+0

andrewsi是的,我可以從該文件回顯密碼。 – noel

回答

0

至於爲什麼它不起作用,你有沒有嘗試回顯從文件中讀取的值?這可能是作爲一個空間或新線這樣簡單的事情,所以你可以嘗試:

$obj->password = trim($pword); 

另一種方法是隻需添加一個例子配置文件到Github上,而不是真實的,例如只需添加config.php.example有空或示例值。

+0

謝謝。我沒有嘗試trim()的想法。我只是使用示例配置。 – noel

0

你的代碼看起來很好。唯一可能的問題是,文件路徑不正確。爲了做到這一點,給予文件的絕對路徑,如(C:\ a \ b \ c.brown_bag或/home/user/.brownbag)

如果上述工作,您將確定其路徑問題。如果沒有,那麼確切的錯誤,它通過一些調試報告。

更好的方法:密碼應該總是在配置文件中。配置文件是在git上沒有提交的文件,直到有一些變化。應該在本地編輯配置文件以獲取密碼。不過,我假設你使用.brown_bag作爲配置文件。不過我會提出一些更好的命名約定。更好的是,將配置文件作爲php文件,並將你的密碼定義爲數組或常量,或者直接在配置文件中定義它。

+0

這是完整的警告:'代碼' 警告:mysql_connect()[函數。mysql-connect]:拒絕訪問用戶'wurkwith_admin'@'presspressoguild.com'(使用密碼:YES)在/home/shakabra/noel.wurkwith.us/admin/inc/common.php在線163 無法連接。訪問被拒絕用戶'wurkwith_admin'@'espressoguild.com'(使用密碼:是) – noel