A PHP Error was encountered

Severity: Warning

Message: Declaration of Administrator::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/Administrator.php

Line Number: 259

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Administrator::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: system/Administrator.php

Line Number: 281

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Menu::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/Menu.php

Line Number: 82

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Menu::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: system/Menu.php

Line Number: 95

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of MenuCategory::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/MenuCategory.php

Line Number: 58

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Menu.php
Line: 29
Function: model

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of MenuCategory::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: system/MenuCategory.php

Line Number: 68

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Menu.php
Line: 29
Function: model

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Logo::upload_image($sub_idx) should be compatible with MY_Model::upload_image($idx, $temp_key = NULL)

Filename: system/Logo.php

Line Number: 100

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 12
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Logo::delete_image($sub_idx = NULL) should be compatible with MY_Model::delete_image($idx, $temp_key = NULL)

Filename: system/Logo.php

Line Number: 119

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/BackPlatform.php
Line: 12
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SEO::insert($property, $property_idx, $data) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: system/SEO.php

Line Number: 129

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SEO::update($property, $property_idx, $data) should be compatible with MY_Model::update($idx, $data)

Filename: system/SEO.php

Line Number: 151

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SiteInfo::get() should be compatible with MY_Model::get($idx)

Filename: system/SiteInfo.php

Line Number: 24

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of SiteInfo::update() should be compatible with MY_Model::update($idx, $data)

Filename: system/SiteInfo.php

Line Number: 37

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Google::update() should be compatible with MY_Model::update($idx, $data)

Filename: system/Google.php

Line Number: 34

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 7
Function: __construct

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Article.php

Line Number: 257

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Article.php

Line Number: 285

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article::upload_image($idx, $sub_idx) should be compatible with MY_Model::upload_image($idx, $temp_key = NULL)

Filename: customize/Article.php

Line Number: 307

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article_category::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Article_category.php

Line Number: 49

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 31
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article_category::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Article_category.php

Line Number: 61

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 31
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Article_tag::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Article_tag.php

Line Number: 71

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 32
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of A2t::insert($article_idx, $tag_idx) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/A2t.php

Line Number: 134

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article_tag.php
Line: 20
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 32
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of A2p::insert($article_idx, $product_idx) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/A2p.php

Line Number: 134

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product::insert($temp_key) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Product.php

Line Number: 288

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Product.php

Line Number: 305

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product_category::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Product_category.php

Line Number: 189

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Product.php
Line: 39
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Product_category::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Product_category.php

Line Number: 202

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/customize/Product.php
Line: 39
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/A2p.php
Line: 19
Function: model

File: /home2/beta/public_html/lupopi/application/models/customize/Article.php
Line: 33
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 8
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of A2c::insert($article_idx, $category_idx) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/A2c.php

Line Number: 132

Backtrace:

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 14
Function: model

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Tracking_code::insert($temp_key) should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Tracking_code.php

Line Number: 35

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Tracking_code::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Tracking_code.php

Line Number: 47

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of About::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/About.php

Line Number: 25

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 10
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of About::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/About.php

Line Number: 36

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 10
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Service::insert() should be compatible with MY_Model::insert($data, $temp_key = NULL)

Filename: customize/Service.php

Line Number: 25

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Service::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Service.php

Line Number: 38

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Front_menu::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Front_menu.php

Line Number: 102

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 12
Function: model

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

[php程式] 用戶從網頁上傳的圖片 要以怎樣的狀態存在 server 才好?

A PHP Error was encountered

Severity: Warning

Message: Declaration of User::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/User.php

Line Number: 89

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/user_helper.php
Line: 23
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/common/menu_mobile.php
Line: 17
Function: is_user_login

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 66
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Cart_setting::get() should be compatible with MY_Model::get($idx)

Filename: system/Cart_setting.php

Line Number: 18

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Cart.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/helpers/cart_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/common/menu_mobile.php
Line: 23
Function: get_cart_quantity

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 66
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Cart_setting::update() should be compatible with MY_Model::update($idx, $data)

Filename: system/Cart_setting.php

Line Number: 31

Backtrace:

File: /home2/beta/public_html/lupopi/application/models/system/Cart.php
Line: 11
Function: model

File: /home2/beta/public_html/lupopi/application/helpers/cart_helper.php
Line: 9
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/common/menu_mobile.php
Line: 23
Function: get_cart_quantity

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 66
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 207
Function: get_header_footer

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

0

A PHP Error was encountered

Severity: Warning

Message: Declaration of Page_banner::update($idx) should be compatible with MY_Model::update($idx, $data)

Filename: customize/Page_banner.php

Line Number: 98

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 153
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/blog/main.php
Line: 1
Function: get_page_banner

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 214
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Declaration of Page_banner::upload_image($idx, $sub_idx) should be compatible with MY_Model::upload_image($idx, $temp_key = NULL)

Filename: customize/Page_banner.php

Line Number: 110

Backtrace:

File: /home2/beta/public_html/lupopi/application/helpers/header_helper.php
Line: 153
Function: model

File: /home2/beta/public_html/lupopi/application/views/front/blog/main.php
Line: 1
Function: get_page_banner

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 214
Function: view

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 224
Function: article

File: /home2/beta/public_html/lupopi/index.php
Line: 317
Function: require_once

[php程式] 用戶從網頁上傳的圖片 要以怎樣的狀態存在 server 才好?

未分類
其實這篇之前有寫在草稿

但是只寫了標題



過了一兩個禮拜之後

只看標題 就想不起來這篇要寫什麼了 T_T

剛好最近又遇到一個案例



用戶從網頁上傳的圖片/檔案

要以怎樣的狀態存在 server 才好?









一開始我也跟其他寫網站的菜鳥一樣

開個目錄

把上傳的檔案用 mv 搬到這個目錄



然後開始有人亂搞了

把 php 或是一些 script 傳上去

做一些壞事

感覺很可怕



所以除了上傳的時候做一些檔案類別(file type)檢查以外

也開始把圖片/檔案存到資料庫裡面









然後又因為不是很熟 mysql 怎麼存 binary file

所以又把檔案內容先用 base64_encode 以後

再塞資料庫

mime_type 也在上傳的時候順便塞入資料庫

以便顯示的時候搭配 header 使用



這樣既然可以避免掉有人塞惡意程式到圖檔裡面上傳之類的問題

圖片/檔案透過 php 管理

可以計算下載次數

也可以跟 ckeditor 一類的 html editor 配合

(因為 ckeditor 如果要用它的圖片上傳功能 是要另外付費的)









但是最近遇到一些不老實的主機

資源卡的很緊

(應該說之前租的主機都太好心 資源放很寬)



有的頁面一次開超多圖片的時候

所有的圖片都透過 php 去開

主機的 連線數量又有限

(主機商只開 Entry Process 我覺得很少)

(Entry Process 可以大概當成同時可以跑幾個php程式)

所以只要同時有兩三個人開首頁

就爆炸了









後來沒辦法

只好改 code, 把存在資料庫的圖片存到目錄裡面

第一個遇到的問題是



假設上傳機制有漏洞

有人把php偽裝成圖片塞到這個目錄裡面怎麼辦?



可以設定 .htaccess

讓這個目錄只能開特定附檔名的圖片檔





SetEnvIfNoCase Request_URI ".(gif|jpe?g|png|bmp)$" picture

Order Deny,Allow



Deny from All

Allow from env=picture





這樣就行了











另外

原本可以動態透過php去決定縮圖大小的功能

也沒辦法做了



只能在上傳的時候決定要縮小的縮圖大小

在上傳的時候做完



如果改變縮圖尺寸

可能就要再用程式批次修改了







由這次的經驗也了解

很多主機商都是非常不老實 "穩賺不賠" 的經營主機生意



例如一個月流量給你開幾百G, 甚至 "無限流量"

但是連線數只給你開10個 或是 Entry Process

(通常規格上都不會寫)

或是 CPU 給你 3% 上限



就像小時候我們玩那種貼紙的蒐集遊戲

總共有九張

最後一角那張永遠都集不到



主機商只要卡住一個重要的資源

其他資源開再多你也用不完/吃不到



當然主機商的挑選還有很多面相

不過主機商真的要慎選

好的主機商讓你每天都可以安心睡覺

不好的主機商讓你每天都看晨星