在我的網站的管理區域中有一個表單,用於網站使用的mysql數據庫的主機名,用戶名和密碼。目前這些值被硬編碼爲一個php類。但是我可以鏈接誰,以便表單可以編輯php類中的變量(並將結果保存在服務器上,換句話說,變量是硬編碼的)。我通常會把這樣的東西放在數據庫中,但顯然這是無法完成的。在沒有數據庫的情況下永久保存php變量
回答
將值保存在配置文件中。並確保它無法通過網絡訪問。
最簡單的解決方案是將值保存在配置數組中 - 用戶輸入值,然後從中生成一個數組,然後file_put_contents("config.php", "<?php $config = " . var_export($config))
。有了這個方法,無論何時你需要配置數組,你所需要做的就是include config.php
,它就在那裏。
這是未經過測試的代碼,僅用於舉例目的。根據你的情況,你可能需要解決競爭條件,file_put_contents
是不夠的。上面代碼的主要點是:var_export
返回有效的php代碼,你可以eval
(如果你足夠邪惡的話)或迴應到一個文件,並在稍後加入。
這是如何工作的,如果我想在第一次創建配置文件時進行修改。 – 2010-07-25 09:55:36
@Jonathan您可以修改已經加載的'$ config'數組,然後再次執行'file_put_contents'部分。 – Maerlyn 2010-07-25 10:03:17
所以只需重新創建文件? – 2010-07-25 10:27:38
創建配置文件,並授予您的Web服務器對其的寫入權限。然後,只需編寫一個將DB配置保存到此文件的腳本即可。例如。
$fh = fopen('config.php', 'w');
fwrite($fh, chr(60) . "?php\n");
fwrite($fh, sprintf("define('DB_HOST', '%s');\n", addslashes($_POST['DB_HOST'])));
fwrite($fh, sprintf("define('DB_USER', '%s');\n", addslashes($_POST['DB_USER'])));
fwrite($fh, sprintf("define('DB_PASS', '%s');\n", addslashes($_POST['DB_PASS'])));
fclose($fh);
這是如何工作的,如果我想在第一次創建配置文件時對其進行修改。 – 2010-07-25 09:45:53
你會把配置文件創建代碼放在另一個腳本editconfig.php中。 – jmz 2010-07-25 10:38:36
- 1. 如何在沒有數據庫的情況下永久保存arrayList,以及在Android中沒有Shared偏好?
- 2. Matlab變量永久保存
- 3. 如何在沒有數據庫的情況下每5分鐘保存一次php變量
- 4. 如何在沒有sudo的情況下永久運行Ec2
- 5. 永久PHP變量
- 6. 永久保存數據
- 7. 保存數據永久
- 8. 在不保存到數據庫的情況下分配會話變量
- 9. PHP永久緩存數據
- 10. 如何永久保存變量?
- 11. 如何在沒有任何數據庫的情況下保存我的datagridview?
- 12. 有沒有辦法在沒有數據庫的情況下將數據保存在Java EE應用程序中?
- 13. 在沒有$ _GET的情況下在php中獲取jQuery變量
- 14. 有沒有辦法永久保存遊戲數據?
- 15. 將數據永久保存在數據庫中
- 16. 如何在沒有數據庫(PHP)的情況下存儲密碼?
- 17. 如何讓php在沒有cron的情況下永遠工作?
- 18. 在沒有數據庫調用的情況下獲取持久實體引用
- 19. 如何在沒有數據庫的情況下收集數據
- 20. PostgreSQL永久連接:在我的情況下有用嗎?
- 21. 如何在沒有全局變量的情況下始終保持變量?
- 22. 讓PHP在沒有大量變量的情況下獲得可用天數
- 23. 保存Php變量到mysql數據庫
- 24. 在有或沒有索引的情況下複製數據庫?
- 25. 如何在沒有保存鍵的情況下在PHP中合併數組?
- 26. VB.NET - 如何在這種情況下保存數據庫信息
- 27. 在沒有ORM的情況下在Python中使用數據庫
- 28. 在沒有參考的情況下保留數據
- 29. Python Sqlite3 - 數據不是永久保存
- 30. SharedPreferences不會永久保存數據
可能重複的[PHP,閱讀文件](http://stackoverflow.com/questions/2237291/php-reading-file) – Gordon 2010-07-25 10:09:10
哦,不要這麼迂腐,這是關於寫作,而不是閱讀文件。 – 2010-07-25 10:32:35