2010/01/30

[CodeIgniter] 網站準備工作

CI的文件看的差不多了,該來實際寫一個網站才能知道自己懂多少
於是設定寫一個活動報名網站,功能很簡單
首頁是所有活動列表,進去後使用者可以報名參加
藉此可以練習FORM與資料處理的功能
管理者可以到後台新增活動,檢視報名資料,製作表單等
功能很簡單,但已經囊括大部分PHP常用功能,也可與我之前開發經驗做對比
引言就到這,開始準備設定值
===========================
  1. 裝好Appserv (Apache + PHP + Mysql + phpmyadmin)
    由於是開發環境,直接用整合包比較方便;使用2.5.10版本
  2. 下載CodeIgnitor,目前版本為1.7.2
  3. 解壓縮檔案到\www\ci,結構應為
    www\ci\
        system\
        user_guide\
        index.php
        license.txt
    其中user_guide可以刪除
  4. 移除index.php,
    如果不喜歡網址出現index.php (ex:http://127.0.0.1/ci/index.php/signup/index/),可作以下設定移除。

  5. 新增.htaccess檔案,內容如下
        RewriteEngine on
        RewriteCond $1 !^(index\.php)
        RewriteRule ^(.*)$ index.php/$1 [L]

    大致意思是,如果網址有index.php就跳過,其餘都改寫成index.php/網址接的東西,這樣講聽的懂才有鬼
    http://127.0.0.1/ci/index.php/signup => 有index.php,跳過
    http://127.0.0.1/ci/signup                  => 改寫為 http://127.0.0.1/ci/index.php/signup

  6. 修改config,檔案在www\ci\system\application\config\config.php
        $config['base_url']    = "http://127.0.0.1/ci/"; 
        //原本是 $config['base_url']    = "http://www.example.com/";
        用意讓CI知道你網址是啥,內容的連結都會自己加上這串基底網址

        $config['index_page'] = "";                               
        //原本是 $config['index_page'] = "index.php";
       
        也是產生連結的基底。如果要連結到signup
        原本設定會產生http://127.0.0.1/ci/index.php/signup
        改為空值會產生http://127.0.0.1/ci/signup
       
    網址看起來比較乾淨 ( 我以前是用 index.php?op=signup ),且容易被搜尋引擎搜尋到。

  7. 如果打開網頁出現錯誤,請修改Apache Config 開啟mod rewrite功能
    Apperv\Apache2.2\conf\http.conf
    #LoadModule rewrite_module modules/mod_rewrite.so  //把#字號移除

  8. 接下來要設定DB,修改Application\config\database.php
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "signup";
    $db['default']['password'] = "123456";
    $db['default']['database'] = "signup";
    $db['default']['dbdriver'] = "mysql";
    

    這邊是測試,所以密碼非常不嚴謹XDD

  9. 建立DB: signup 與table: event, joiner
    event 記錄活動資訊,joiner記錄報名資訊。以下結構可參考
    CREATE TABLE `event` (
     `sn` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
     `topic` VARCHAR( 50 ) NOT NULL ,
     `desc` VARCHAR( 250 ) NOT NULL ,
     `start_time` DATETIME NOT NULL ,
     `end_time` DATETIME NOT NULL ,
     `joiner_no` INT NOT NULL
    ) ENGINE = MYISAM ;
    
    CREATE TABLE `joiner` (
     `sn` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
     `name` VARCHAR( 20 ) NOT NULL ,
     `sex` ENUM( 'm', 'f' ) NOT NULL ,
     `mobile` VARCHAR( 10 ) NOT NULL ,
     `event_sn` INT NOT NULL ,
     `time` DATETIME NOT NULL
    ) ENGINE = MYISAM ;
    

基礎設定到此完成,下一篇要來引入CSS Template使用

沒有留言:

張貼留言