PHP 判斷是否為行動裝置

因為目前裝置已經不只有電腦,可能有電腦、平板及手機,如何去判別user的瀏覽器然後給予不同內容,這樣的功能變得非常重要,今天發現了一個很簡單的方法~用網友寫好的Mobile Detect  class來做判斷,官網在下方,
http://mobiledetect.net/;
那斷的方式也很簡單~
範例如下~

  1. require_once(“Mobile_Detect.php”);   
  2. $detect = new Mobile_Detect;   
  3. $deviceType = ($detect->isMobile() ? ($detect->isTablet() ? ‘tablet’ : ‘phone’) : ‘computer’);  
  1. <?php $check = $detect->isMobile(); if($check): ?>    
  2.     是的話做的事   
  3. <?php else: ?>  
  4.     不是的話做的事   
  5. <?php endif; ?>  

延伸閱讀
http://blog.wingzero.tw/2014/09/php.html

[……]

閱讀更多

DNS URL Redirect(跳轉式轉址) 與 URL Frame(框架式轉址) 差異

URL Redirect(跳轉式轉址)或URL Frame(框架式轉址),說明如下:

URL Redirect
轉址類型一: 當記錄類型為 URL Redirect 時(跳轉式轉址)
您一樣於主機名稱輸入 www 或 * 時, 地址欄部分輸入您欲轉址的連結,當網友輸入您的網址時,則系統會自動將用戶轉址到您設定的連結上,但轉址後則網址列上的網址名稱為會交由您所設定的連結來變換。

URL Frame
轉址類型二: 當記錄類型為 URL Frame 時(框架式轉址)
您一樣於主機名稱輸入 www 或 * 時, 地址欄部分輸入您欲轉址的連結,當網友輸入您的網址時,則系統會自動將用戶轉址到您設定的連結上,但轉址後則網址列上的網址名稱並不會隨著連結的變化而有所更動,網址列上永遠列出的是您的網址,而並不會隨著轉址後的連結變化而改變。這是採用框架(Frame)的方式進行轉址。
原文
http://service.taiwandns.com/?p=998

[……]

閱讀更多

PHP 解決 Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

解決方法一:

停用PHP顯示錯誤訊息

這絕對不是個好方法,我個人是不推薦使用,雖然這方法一勞永逸,但在開發PHP時,你將會知道錯誤訊息有多麼美好,Debug時才不會像無頭蒼蠅般,除非程式已經在一個很穩定的階段,不然非必要,不要關閉全部錯誤訊息,還是留給程式可以去設定是否顯示錯誤訊息的彈性。
以下介紹幾種PHP停用錯誤訊息的方法:

在PHP文件中加入,停用PHP錯誤訊息

如果還是出現錯誤訊息,請試下列方法

在.htaccess檔案中加入下面這一行 ( Apache專用 )

如果還是出現錯誤訊息,請試下列方法

在 PHP.ini 中找到 display_errors 這一行,沒這一行則添加,將值改為off。

解決方法二:

PHP排除特定錯誤層級

如果短期間沒打算繼續升級的話,還是可以在PHP5.5 使用 mysqli_connect() ,但停用所有錯誤訊息好像又太極端,下面這方法可以設定錯誤訊息級別,隱藏某些特定的錯誤級別,選擇排除顯示某指定錯誤級別,排除的錯誤級別將不會顯示在錯誤訊息上,排除E_DEPRECATED,mysql_connect()就可以繼續撐拉。

以下例子顯示所有錯誤,除了下列這幾個錯誤級別:

E_DEPRECATED棄用E_NOTICE注意E_WARNING警告E_STRICT嚴格

解決方法

mysql_connect 改用 mysqli_connect()

這是最正規的方式拉,也是最推薦的,就是乖乖升級吧,雖然升級的過程中會有一段陣痛,有點痛,以下提供很簡單的範例。

mysqli_connect() 範例如下

mysqli_connect() 建表SQL如下

[……]

閱讀更多

PHP Deprecated: Function set_magic_quotes_runtime() is deprecated 解決方法

set_magic_quotes_runtime()於 PHP5.3後棄用

在 PHP.net 官方文件中有提到,set_magic_quotes_runtime()於PHP5.3已經棄用,雖然不會造成Fatal error而中斷程式,但會發送E_DEPRECATED的過時警告

Deprecated: Function set_magic_quotes_runtime() is deprecated

替代方案:

set_magic_quotes_runtime(0);

意思同上,以下列方法替代棄用的set_magic_quotes_runtime()

ini_set("magic_quotes_runtime", 0);
這一段主要是修改 php.ini 中 magic_quotes_runtime 參數
用以將SQL語句自動加上跳脫字元反斜線,以防止SQL注入隱碼攻擊(SQL injection)

PHP 5.4起,使用此函數會拋出Fatal error,終止程式運行

Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime()

相容性:

有時在寫PHP並不一定確定針對某一版本去寫,另外目標主機環境百百款,PHP版本也很不固定,每次要針對版本再改就會很麻煩,我覺得相容性就變得很重要,解決方法如下:

把舊版本程式有使用到

set_magic_quotes_runtime(0);

都改為就可以了

ini_set("magic_quotes_runtime", 0);
另外在前面加上@,加上@的意思就是強制不拋錯誤訊息,如下
@set_magic_quotes_runtime(0);
不過我覺得還是不要使用@強制不拋錯誤訊息的作法,
因為有很多時候Debug還是需要錯誤訊息,
當然還有其他方法,其他方法可參考官網文件,

參考資料:

[……]

閱讀更多

Google Chrome 也太有心了吧,隱藏版,無法連線至網際網路的小遊戲

今天用Google Chrome在瀏覽網頁,後來好像斷線了,
Google Chrome就跳出 無法連線至網際網路這一個錯誤頁,
然後不小心發現,按了空白鍵之後小恐龍就跳起來咧,遊戲就開始了
原來Google Chrome還有個隱藏版小遊戲,感到驚喜,
我便開始玩起來了,讓討人厭的錯誤畫面有新的定義。

按下空白鍵,小恐龍跳起來,遊戲開始


 要跳過障礙物,不然就Game over了

 Game over

雖然是動動手指的小遊戲,但讓人感到用心,在生冷的網路世界多了一分趣味
沒有Google怎麼辦呀!!!!!!
[……]

閱讀更多