2013-12-17 22 views
0

我有一個名爲config.php的文件,它存儲連接到數據庫,(用戶名,密碼等)的變量我想能夠從HTML格式編輯這些設置(I有它設置)編輯文件包含內部設置php

但是我不能找出如何重新定義這些變量的形式,我發送表單到頁面updateDatabaseSettings.php,但不知道如何改變它們。

我們將非常感謝您的幫助。

的代碼,我到目前爲止有:

的config.php

$DBUSER="root"; 
$DBPASS=""; 
$DBHOST="127.0.0.1"; 
$DBNAME="mydb"; 

updateDatabaseSettings.php

$newDBHOST = $_POST['dbhost']; 
$newDBNAME = $_POST['dbname']; 
$newDBUSER = $_POST['dbuser']; 
$newDBPASS = $_POST['dbpass']; 

說爲$ newDBHOST用戶輸入192.168.1.2我想,要更換$ DBHOST中的文本

謝謝

回答

3

您的updateDatabaseSettings.php腳本需要覆蓋config.php文件的內容。

一個簡單的方法是構建一個包含所有新內容(包括<?php ?>標籤和所有變量聲明)的字符串。然後,您可以將該字符串傳遞給file_put_contents()以覆蓋config.php文件。

請記住檢查您的文件權限。您需要允許網絡服務器寫入config.php,否則它將無法工作。

+0

中檢出file_put_contents然而file_put_contents()會替換當前代碼嗎? – Robbo5899

+0

是的,它會取代'config.php'中的所有內容。如果你只想替換部分代碼,那麼它更復雜。您必須閱讀當前內容,解析它以找出要修改的位,然後將整個修改的內容寫回。這可能是不值得的麻煩! –

+0

好的,我確實有其他設置保存在該文件中,但爲了簡單起見,我可以將它們分成其他文件。謝謝您的幫助 :) – Robbo5899

-1

我想在updateDatabaseSettings.php中包含config.php並替換值?甚至將這些變量設置爲全局?那麼我想你必須殺死並初始化一個新的數據庫連接。很難回答,需要知道你的應用是如何構建的。

+0

基本上每個需要訪問數據庫的頁面都會包含config.php。 – Robbo5899

+0

那麼問題是什麼?您無法爲$ DBHOST設置新值? – Eric

+0

是啊,我不知道如何,我想我可以使用PHP的文件寫入系統,但經過很多谷歌我仍然沒有注意到它是如何工作的。 – Robbo5899

0

你有很多選擇,所以很難說,但我會創建兩個DB連接的實例 - 一個默認和第二個變量連接。默認連接可以從config.php獲取配置信息,並且您可以始終連接到默認數據庫,第二個實例將始終直接從POST中獲取配置信息,並在調用POST請求時創建新連接。

此外,您可以使用全局變量,並在需要時直接重寫它們,或直接使用PHP更改config.php文件(look fopen,fwrite,fclose,... functions)。