程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP制作安裝程序的原理與步驟詳細講解

PHP制作安裝程序的原理與步驟詳細講解

編輯:關於PHP編程

本文講解PHP制作安裝程序的原理與步驟
1、制作PHP安裝程序的原理
        PHP程序的安裝原理就是將數據庫結構和內容導入到相應的數據庫中,從這個過程中重新配置連接數據庫的參數和文件,為了保證不被別人惡意使用安裝文件,當安裝完成後需要修改安裝文件。
2、制作PHP安裝程序的步驟
        step1 檢查目錄或文件的權限
        step2 修改或填加配置文件
        step3 檢查配置文件正確性
        step4 導入數據庫
        step5 鎖定或刪除安裝文件
3、制作安裝用到的PHP函數
        檢查文件是否可寫,返回布爾值:is_writable("data/config.php");
        檢查文件是否可讀,返回布爾值:is_readable("data/config.php");
        fopen() 文件操作函數,打開一個文件或新建
        fwrite() 文件操作函數,寫入內容到文件
        rename() 文件操作函數,給文件改名
4、注意事項
        (1).對文件和相關文件夾權限進行檢查,如緩存,生成文件,配置文件
        (2).安裝文件盡可能獨立,可刪除,可改名。
        (3).數據庫導入時,需檢查:
                a.檢查是否有建立數據庫的權限
                b.是否同名數據庫的存在
                c.考慮到數據庫導入的大小是否分段處理
         (4).檢查配置環境,各種模塊的支持情況,如:gd2, pdo,rewirte等
5、實例代碼

  1. <?php
  2. $files="data/config.php";
  3. if(!is_writable($files)){
  4. echo "<font color=red>不可寫!!!</font>";
  5. }else{
  6. echo "<font color=green>可寫</font>";
  7. }
  8. if(isset($_POST[install])){
  9. $config_str = "<?php";
  10. $config_str .= " ";
  11. $config_str .= $mysql_host = " . $_POST[db_host] . ";;
  12. $config_str .= " ";
  13. $config_str .= $mysql_user = " . $_POST[db_user] . ";;
  14. $config_str .= " ";
  15. $config_str .= $mysql_pass = " . $_POST[db_pass] . ";;
  16. $config_str .= " ";
  17. $config_str .= $mysql_dbname = " . $_POST[db_dbname] . ";;
  18. $config_str .= " ";
  19. $config_str .= $mysql_tag = " . $_POST[db_tag] . ";;
  20. $config_str .= " ";
  21. $config_str .= ?>;
  22. $ff = fopen($files, "w ");
  23. fwrite($ff, $config_str);
  24. //=====================
  25. include_once ("data/config.php"); //嵌入配置文件
  26. if (!@$link = mysql_connect($mysql_host, $mysql_user, $mysql_pass)) { //檢查數據庫連接情況
  27. echo "數據庫連接失敗! 請返回上一頁檢查連接參數 <a href=install.php>返回修改</a>";
  28. } else {
  29. mysql_query("CREATE DATABASE `$mysql_dbname`");
  30. mysql_select_db($mysql_dbname);
  31. $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log1` (
  32. `id` int(8) unsigned NOT NULL auto_increment,
  33. `username` varchar(40) NOT NULL COMMENT 操作用戶名稱,
  34. `types` varchar(60) NOT NULL,
  35. PRIMARY KEY (`id`)
  36. ) ;";
  37. $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log2` (
  38. `id` int(8) unsigned NOT NULL auto_increment,
  39. `username` varchar(40) NOT NULL COMMENT 操作用戶名稱,
  40. `types` varchar(60) NOT NULL,
  41. PRIMARY KEY (`id`)
  42. ) ;";
  43. $sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log3` (
  44. `id` int(8) unsigned NOT NULL auto_increment,
  45. `username` varchar(40) NOT NULL COMMENT 操作用戶名稱,
  46. `types` varchar(60) NOT NULL,
  47. PRIMARY KEY (`id`)
  48. ) ;";
  49. foreach($sql_query as $val){
  50. mysql_query($val);
  51. }
  52. echo "<script>alert(安裝成功!);location.href=index.php</script>";
  53. rename("install.php","install.lock");
  54. }
  55. }
  56. ?>
  57. <hr size=1>
  58. <form action="" method="POST">
  59. 填寫主機:<input type="text" name="db_host" value=""/><br>
  60. 用 戶 名:<input type="text" name="db_user" value="root"/><br>
  61. 密  碼:<input type="text" name="db_pass" value=""/><br>
  62. 數據庫名:<input type="text" name="db_dbname" value="php100_db"/><br>
  63. 數據前綴:<input type="text" name="db_tag" value="p_"/><br>
  64. <button type=submit name=install>下一步</button>
  65. </form>

希望本文能對你有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved