<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ##安裝功能說明 我們在電腦上安裝軟件的時候,點擊下一步調整一些配置選項軟件就安裝成功了。 不需要非常高深的計算機技術即可讓普通人完成安裝。 我們在真正的商業型產品中也需要做完整的安裝過程: 1. 極為方便普通用戶 2. 看起來特別專業 3. 操作起來簡單提高效率 我們的PHP的論壇、商城、OA、微信平臺都可以做這樣的安裝包,普通用戶下載我們的安裝包后。幾步就可以開始使用我們的服務。 這樣對用戶和對開發人員都好。 ##安裝相關基本概念 | 概念 | 說明 | | -- | -- | | 安裝目錄 | 通常在install目錄下 | | 安裝鎖 | 通常為install.lock,有這個文件就是安裝過,無這個文件就是未安裝 | | PHP擴展模塊判斷 | mysqli模塊沒有就無法操作數據庫,我們則拒絕用戶繼續安裝 | | 目錄權限判斷 | 我們會寫入install.lock或者一些臨時文件,若某些目錄沒有寫入修改權限則無法安裝成功 | | 版本權限判斷 | 如果是php4.x版本想安裝我們的應用,我們會提醒用戶PHP版本太低無法安裝 | |超級管理員 | 初使的最高管理員,可以管理后臺,方便用戶管理,安裝時即設置 | | 初始數據庫結構|初始的數據庫我們是將開發的數據庫清空后,打開.sql文件,分行執行,向數據庫寫入創建表的語句和初始信息 | > 注:所有的代碼文件實例請下載我們的安裝包。查看install目錄。 ##安裝核心步驟說明 1. 打開網站。打開網站若不存在install.lock文件則識為未安裝 2. 存在安裝鎖文件install.lock則禁止用戶執行安裝 3. 展示安裝協議 4. 檢測操作系統和PHP版本,是否版本準許。若版本不準許則不展示下一步。 5. 判斷權限是否具備相關目錄的寫入權限和PHP的圖像、數據庫模塊權限,若不具備相關權限則不顯示下一步。 6. 輸入服務器地址、數據庫信息等配置文件,按照輸入的信息連接數據庫 7. 輸入管理員信息 8. 將基本信息準備好,導入指定數據庫數據表內容 9. 導入成功,創建一個空文件install.lock ##install.lock文件判斷 在/common/common.php文件中有這么一段: ~~~ //項目安裝 if(!file_exists('install.lock')) { header('location:install/index.php'); exit; } ~~~ 若文件不存在則跳轉至header目錄。停止繼續向下執行 /install/top.php文件中有這一段: ~~~ if(file_exists('../install.lock')){ header('content-type:text/html; charset=utf-8;'); exit('網站已經被安裝過了,如果需要重新安裝網站,請刪除 /install.lock 文件'); } ~~~ 若存在install.lock文件禁止執行安裝步驟。 ##判斷版本 獲得操作系統版本 ~~~ function userOS(){ //$user_OSagent = $_SERVER['HTTP_USER_AGENT']; $user_OSagent = PHP_OS; if($user_OSagent) { $visitor_os = $user_OSagent; } else { $visitor_os = '其它'; } return $visitor_os; } ~~~ 獲得PHP的版本號: ~~~ echo PHP_VERSION ~~~ ##判斷目錄權限 判斷目錄寫入權限的自定義函數: ~~~ function iswriteable($file){ if(is_dir($file)){ $dir=$file; if($fp = fopen("$dir/test.txt", 'w')) { fclose($fp); unlink("$dir/test.txt"); $writeable = 1; }else{ $writeable = 0; } }else{ if($fp = fopen($file, 'a+')) { fclose($fp); $writeable = 1; }else { $writeable = 0; } } return $writeable; } ~~~ 判斷模塊權限: ~~~ function_exists('mysqli_connect') ~~~ 如果存在相關函數,則存在相關模塊。 ##修改配置文件 相關代碼參考本書:《8.11 修改置文件的實驗》 ##數據庫導入代碼 將創建庫的SQL語句準備好,創建數據庫發送創建數據庫的相關命令即可。 ~~~ //執行數據庫導入 include '../config/database.php'; //新建數據庫 $link = mysqli_connect(DB_HOST, DB_USER, DB_PASS); if(mysqli_get_server_info($link) > '4.1') { mysqli_query($link, "CREATE DATABASE IF NOT EXISTS `".DB_NAME."` DEFAULT CHARACTER SET ".DB_CHARSET); } else { mysqli_query($link, "CREATE DATABASE IF NOT EXISTS `".DB_NAME."`"); } if(mysqli_connect_errno($link)){ exit('數據庫不存在'); } mysqli_close($link); ~~~ 導入數據庫打開apple_bbs.sql準備好的SQL文件,這個SQL文件中每一行的行尾以;NoAlike結尾。 我們使用explode將sql文件切割成一個數組,循環數組的每一行完成數據的導入。 ~~~ $sql=file_get_contents('apple_bbs.sql'); $conn=mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if(mysqli_errno($conn)){ exit(mysqli_error($conn)); } mysqli_set_charset($conn, DB_CHARSET); $arr=explode(';NoAlike;',$sql); foreach($arr as $val){ if(!empty($val)) { $Nval = str_replace('bbs_', DB_PREFIX, $val); $result = mysqli_query($conn, $Nval); if($result){ $sql = '<font color="green">數據庫導入成功</font>'; }else{ $sql = '<font color="red">數據庫導入失敗</font>'; } } } mysqli_close($conn); ~~~ > 注:所有的代碼文件實例請下載我們的安裝包。查看install目錄。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看