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

客人超喜歡自己架站

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

A PHP Error was encountered

Severity: Notice

Message: Trying to access array offset on value of type bool

Filename: blog/detail.php

Line Number: 19

Backtrace:

File: /home2/beta/public_html/lupopi/application/views/front/blog/detail.php
Line: 19
Function: _error_handler

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 213
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

" alt="

A PHP Error was encountered

Severity: Notice

Message: Trying to access array offset on value of type bool

Filename: blog/detail.php

Line Number: 19

Backtrace:

File: /home2/beta/public_html/lupopi/application/views/front/blog/detail.php
Line: 19
Function: _error_handler

File: /home2/beta/public_html/lupopi/application/controllers/Blog.php
Line: 213
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

" class="img-fluid">

客人超喜歡自己架站

未分類
10月初的時候




供應商 pass 了一個案子





本來這位客戶在供應商做了一個套版網站





提出了一個比較不尋常的需求





網頁 檔案上傳








其實這也不是什麼特殊功能





但特殊的是





這位客戶是傳統的設計業 (割字的)





設計印刷業都會有個流程是





把檔案傳來傳去





不管是客戶傳給廠商





還是廠商傳給客戶





比較傳統的作法是開個 ftp





給個萬用帳號





所有客戶登入上去





開一個自己喜歡的資料夾





然後就放檔案上去





我以為這方法已經很成熟跟古老了








結果客戶表示 他的客人不見得會用 ftp 軟體





事實上這客戶也不會使用 ftp 軟體





他們連 ftp 軟體也不會裝





ftp server 也是請pc維護廠商裝的





他們在隔壁條巷子的同業的網站上發現一個好東西





就是可以從網頁上傳檔案的功能





所以這間割字廠商





就把這個需求 pass 給我的供應商





供應商再把需求 pass 給我








我一開始想說





阿不就檔案上傳





很簡單啊





客人一開始還指定說要上傳G級以上的設計檔





我套了 Fine Uploader





這套算是滿前衛的 js 上傳套件





還支援切檔 上傳大檔也ok





但問題來了





如果每個客人都傳G級檔案





那主機不就很快被塞暴了?





但客戶才不管





客戶指示一定要克服





所以我只好把客戶的主機空間設定大一點(10G好了)





而且呢





因為客戶不會 ftp





所以檔案傳到主機上 是沒用的





還得再把檔案用 ftp 傳到客戶的 ftp server





個人覺得超蠢





但客戶就是超愛這種資料就在自己電腦的感覺





放外面的資料都不是自己的





都會被偷





你是放什麼多私人的東西啊





裸照嘛?











客人用一般的 pc





然後指定 hinet 的固定 IP





架了一個 ftp server





這種東西怎麼可能會穩





我測試的時候是沒啥問題





但交付以後過沒幾天





客戶就打來罵說





怎麼這麼不穩





我想說怎麼這麼奇怪





我跟供應商測試都好好的啊





真的上傳1G的檔案





也是ok 順利的 forward 到客戶的 ftp server 上








後來客戶還是覺得不行





就又來了一個需求說





客戶要把網站架在自己家





我的天啊





我最怕這種客人了





什麼東西都想擺自己家








供應商問我這樣出勤要多少費用





其實我一點都不想賺這個錢





因為機器放客人那





一定會出問題





客人會給你亂砍東西





亂關 server





停電怎麼辦?





客人哪管這麼多





到時候又要跑客戶那








但沒辦法 客戶要咩





所以我跑了一趟五股





把機器設定好





把程式搬過去





當場測試了一下程式





似乎很順利





就開心的收工回家








回到家後





客戶馬上來電說





他一上傳檔案





電腦就當機了





什麼? 也太誇張了吧





然後又說他的客戶上傳都失敗





但電話中 問客戶一些徵兆





客戶也說不出所以然





所以只好再去一趟





第一趟開車去





工業區的小巷子根本沒地方停車





所以第二趟我決定騎車去





騎到五股腰都斷了





結果到現場





客戶的 chrome 真的當了





客戶問我怎麼會這樣





我說我怎麼知道





這是你電腦的問題啊





後面小姐的電腦就好好的啊





我關掉 chrome 後





重新傳一次給他看





就好了





所以客戶很開心





我也收工了








這過程中比較有趣的是





我有問客戶為什麼要自己架網站





萬一停電怎麼辦?





結果客戶說





是業務跟他說 自己架 只要買一台電腦





他想說 電腦一台才一萬





外面的虛擬主機一年四五千





那他兩年就回本了





我的天啊





客戶真的是天真到不行





我問他說 你有算過電費嘛?





客戶的回答總是 "我怎麼知道 你又沒跟我講"








果不其然





兩週後的星期六





我在河邊騎腳踏車的時候





來了一通電話





客人說 工業區跳電





他的網站就進不去了





我說對啊





不是跟你講過了





不要自己架啊





他說那現在怎麼辦





他已經進公司把電腦打開了





為什麼還是不能進網站?





其實我也懶得解釋





應該是 Server 軟體沒有設定成 Service





所以重開機後就不會自己啟動








而且這客戶已經第二次假日打電話給我





我滿不爽的





客戶總是這樣





你要跟他收維護費的時候





他就覺得沒啥好維護的





但緊急的時候就直接打給你要你解決





拜託





一分錢一分貨好嘛





你不付費哪來的服務啊





而且早跟你說不要自己架了








我只有淡淡的回他說





不好意思耶 今天休假





客人知道沒得處理 也沒講什麼





就掛電話了











隔天這客戶又暴走了





他說他的客戶還是不能傳





客戶都喜歡把問題放大一百倍





例如客戶10個客人 有一個無法上傳





他就會跟你說 "都不能上傳"





我問他客人用什麼瀏覽器





他說不知道 要問一下





他傳客戶拍畫面的圖片給我看





顯然是 Mac





但 Mac 也有可能用 Safari 或是 Chrome





我請他問他的客人





他說客人跟他說他用 IE










Mac 最好是會裝 IE





很顯然是一個把IE當做瀏覽器統稱用戶








但不管





Mac 有問題就還好處理





Chrome 比較沒有跨平台的問題





所以我想應該是 Safari 有問題





很快的找到 bug





更新測試後沒問題





就回報客戶 請客戶再測試








客戶也非常快的回報





還是有問題 但仍然說不出所以然





我覺得這樣下去不是辦法





就跟供應商討論





後來供應商打電話去被客戶洗臉





但問到了非常好笑的答案








就是客人真是他媽的智障





在那台有網頁伺服器的pc上





因為跳電嘛





客戶就把原本架 ftp 那台電腦開起來





想說他的客人還是可以透過原本的 ftp 傳檔





然後用固定IP的ADSL帳號撥接





所以把固定IP搶走了





以致於就算網頁伺服器打開





網站還是不會通 (阿因為IP沒了啊怎麼會通)





所以就被客戶的客人靠杯說網站不穩








然後我以為時代很進步了





大家應該都至少用 Chrome 或是 Firefox





就算用 IE





也至少用 IE10 IE11 (IE8就不說了)





但好死不死





Fine Uploader 不支援 IE9





因為 IE9 沒有完全支援 html5





客戶的客人應該是有人用 IE9





所以上傳就失敗 (應該是連頁面都開不起來)





所以得另外寫一個 比較簡陋的非html5版本





但是可以上傳檔案的功能





重點是要顯示上傳進度





因為客戶很蠢





你不寫上傳進度顯示





他一定覺得你網站有問題掛掉





跟供應商溝通後





供應商貼錢給我補 IE9 的部份





就解決了





我還因此補足了這方面的知識





(很久以前就想搞懂怎麼做傳檔進度的東西)











但我在想





這樣的流程架構本來就會有問題





你看嘛





才剛說會跳電





就跳電了





還給你換撥接固定IP的機器





然後跟你裝傻 跟你說你的東西都是問題








出事就跟你說





"你給我想辦法"





但問題都是你的特殊需求啊





早就跟你說這樣不行了





現在哪有人用 ftp 共享檔案啊





email 不能寄大檔





那你就用 dropbox / google drive 阿





什麼都不懂 也不學新東西





iphone 用的這麼開心





結果還不是打打遊戲刷刷蘋果日報








然後出事了 跟他講原因





他就會回你 "你不早講 你當初沒跟我講啊"





跟供應商那邊 動不動就解約要脅








其實我們做技術的





都心知肚明這樣亂搞的下場





你看喔





檔案要可以不切檔 上傳這麼大的檔案





要改 upload size / post size / 執行時間 的 php 設定值





風險是什麼?





就是被亂塞東西 被 hack





你跟客人講 重點還不是他聽不聽的懂





重點是





他不想聽





他覺得這是你家的事情





你要想辦法








就很像客人開車





冷氣壞掉





客人說很熱





可不可以把車門拆掉





我說這樣很危險





你會摔出去





結果他回你說





"我不管 你給我想辦法 我就是要拆車門 熱死了"





等摔出去他再跟你說





"你不早講"











要不是看在供應商的面子上





我是很想跟他說





好啦





你去找別人好了





找誰還不是都一樣











也許有些讀者覺得我很喜歡罵客人





重點不是說我不爽客人不懂





但我覺得 你找廠商





不就是要處理你的問題?





你要是這麼厲害 又不想花錢





那你就自己弄啊





找人花錢弄





意見一堆





跟你講你又不聽





出事了再說 "我不管 你給我想辦法"





這種心態不是很奇怪嘛?








處理東西都要時間 都要成本





花了錢 就想跟變魔術一樣





馬上就有東西





那叫詐騙集團好嘛?








老話一句





跟客戶溝通 很重要





但無法溝通的客戶





我真的寧願把時間省下來





幫聽我話的客戶好好服務