php – Codeigniter 關於資料庫管理 forge 類別的使用注意

  • 欄位可為 NULL 時,不用指定 default 為 NULL ,否則會出錯。
  • 型態為 timestamp ,用來記錄該筆資料的變動時間時,不可指定 default 如
    'updatetime' => array
    (
        'type' => 'timestamp',
    ),

    會自動產生屬性『on update CURRENT_TIMESTAMP』與預設值是『CURRENT_TIMESTAMP』

  • 如果要替欄位加上註解,這在官網中似乎沒提到。可以多添加一個叫做 comment 的屬性:
    'content' => array
    (
        'type' => 'varchar',
        'constraint' => 50,
        'comment' => '內容' //添加這個
    )

     

php – Codeigniter 3.0.2 升級到 3.0.3 的網址出現 http://::1

CI 3.0.3 須要注意要手動指定 config/config.php

$config['base_url'] = '';

如果你的 CI 同時會在正式環境與開發環境,也就是會在實際線上的網域與 localhost 中運作。可以參考官方這篇做這麼修改參數 $config[‘base_url’] 。

$allowed_domains = array('localhost', 'jsnwork.kiiuo.com'); //你允許的網域,其中一個指定 localhost
$default_domain  = 'domain1.tld'; //指定正式環境的預設網域

if (in_array($_SERVER['HTTP_HOST'], $allowed_domains, TRUE))
{
        $domain = $_SERVER['HTTP_HOST'];
}
else
{
        $domain = $default_domain;
}

if ( ! empty($_SERVER['HTTPS']))
{
        $config['base_url'] = 'https://'.$domain;
}
else
{
        $config['base_url'] = 'http://'.$domain;
}

這樣在 localhost 中開發,就會優先使用 localhost。在線上查看,會使用你允許的 $allowed_domains。簡單來說,每次新專案都要手動指定,是為了解決自動判別的不安全。

但如果你的本機開發是放在子目錄底下。如我的CI放在 http://localhost/CI_jsn 那怎麼改?

$allowed_domains = array('localhost', 'cijsn.kiiuo.com'); 
$default_domain  = 'cijsn.kiiuo.com';

if (in_array($_SERVER['HTTP_HOST'], $allowed_domains, TRUE))
{
    //改成這樣。當發生在 localhost 的時候,添加結尾路徑
    if ($_SERVER['HTTP_HOST'] == "localhost") 
    {
        $domain = $_SERVER['HTTP_HOST'] . "/CI_jsn";
    }
    else 
    {
        $domain = $_SERVER['HTTP_HOST'];
    }
}
else
{
    $domain = $default_domain;
}

if ( ! empty($_SERVER['HTTPS']))
{
    $config['base_url'] = 'https://'.$domain;
}
else
{
    $config['base_url'] = 'http://'.$domain;
}

不過我覺得這樣有點凌亂,這邊就不做優化了。我覺得這次的修改應該會稍有爭議,覺得應該還會被修正。

 

php – 透過 Composer 安裝 Codeigniter

1. 在 Windows 安裝好 Composer 以後,如果我們要下載 Codeigniter,該怎麼做呢?

2. 首先,先在命令提示字元 cmd 進入你的專案

> cd c:\xampp\htdocs\www\test

3. 接著使用 Composer 建立專案指令

> composer create-project codeigniter/framework

4. 這樣就可以下載下來囉

php – codeigniter – 出現『The URI you submitted has disallowed characters.』

通常是因為網址夾帶了不允許的符號,所以會出現這段警告訊息。例如如果網址使用了半形逗號『,』如 http://網址?id=”2,3,4″那就會產生警告。這時候,需要到 config.php 修改設定,將

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

修改為

$config['permitted_uri_chars'] = 'a-z 0-9~%.,:_\-';

或是把permitted_uri_chars的規則添加你要允許的字元。這樣就可以囉!預設沒有允許逗號,對於逗號的安全性我就沒有特別研究了,不知道原因是什麼,需要深入了解的朋友在查查網路囉

php – Codeigniter 2.2 升級到 Codeigniter 3.0 dev 的注意事項

Controller, Model, Libraries 裡的文件需要改成大寫

在system/core/Codeigniter.php 376行

$class = ucfirst($RTR->class);

可以知道強制檔名開頭為大寫。

如果本機是 Windows 開發,遠端是 Linux,因為Win是不區分大小寫,所以再升級不會發覺。但是Linux 有區分。可以配合網友提供的 http://sofree.cc/ken-rename/ 這套軟體來批次修改檔名。

其他有非常多的細項,打算在 Codeigniter 3.1 做移除。可參考官網原文說明

http://www.codeigniter.com/userguide3/installation/upgrading.html