在最近升級PHP至5.3後,發現都會有一個警告
Warning: Directive register_globals is deprecated in PHP 5.3 and greater in Unknown on line 0
去查了一下才知,原來PHP 中最具爭議的變化就是從 PHP 4.2.0 版開始配置檔中 register_globals 的預設值從 on 改為 off 了,而在5.3版本後就會顯示警告,但還是能開啟使用,但在PHP 6 之後就會全面停用。
哈~因為有register_globals,所以小弟覺得各家程式語言之中,PHP最強大,因為程式隨便寫都能執行~^^||
也可以設定成不用接參數,到了下一頁自動會轉成變數,這對開發者來說是省了不少功夫,不過也是因為如此,所以程式就不夠嚴謹,而且還會有安全性的問題,所以還是乖乖使用比較正統的方式寫CODE 吧 ~><~
註:如果想知道為何會不安全,請看以下連結說明:
除了 register_globals之外,當然也還有幾個參數也準備廢除,如下:
register_long_arrays
magic_quotes_gpc
magic_quotes_gpc這參數也頂棒的~可以不用去管是不是要加反斜線~唉~這也是安全性的考量要拿掉嗎? 怪的~去查了一下,拿掉主要因素不一樣啦~~是因為會影響程式造成可移移植性低、效能問題及容易造成困惑,詳細請看以下的文章:
不過這些參數,舊程式蠻都有介由他們進行自動轉換,沒了程式不就要大改了..呵~~好在還有偷吃步的方式,在 register_globals=Off的情況下,還是可以用以下程式碼達到同等效果。
<?php
if (!ini_get('register_globals'))
{
extract($_POST);
extract($_GET);
extract($_SERVER);
extract($_FILES);
extract($_ENV);
extract($_COOKIE);
if ( isset($_SESSION) )
{
extract($_SESSION);
}
}
?>
這樣只要加到會include的共用頁這樣就升級程式支援該參數被關掉了~^^
而magic_quotes_gpc被關掉也有解法,有興趣的人可以看剛剛上面那個連結,只是沒這個好改了!!
Mysql 被Sun買後不久,Sun也被Orcale買了,真不知~Oracle買Sun是為了Sun還是Mysql呀!!
前些日子看到Oracle還跳出來說會持續支援Mysql開放源始碼,但商人就是商人,看來還是想要找地方生錢出來才行
最近看到新聞,提及Mysql + Innodb 是要付費的,看來不只斷Mysql手腳而已,都快砍對半了,雖然還是有高效能的MyISAM可以使用,但沒支援交易模式,只能拿出來在小系統裡使用,看來要找個時間找一下配套方案才行。
目前比較合適的,可以算是無痛轉移的應該是可以移到MariaDB 或是Percona Server,可以改用xtraDB,看相關報導似乎xtraDB的效能有贏過Innodb呢~先記下來,等有空再玩玩。
如想知道更多資訊,請看以下連結:
最近在重裝MYSQL資料庫,用懶人法將舊的資料庫實體檔案搬過來用,重啟時發現雖然可以啟動但好像無法使用
並出現
Cannot proceed because system tables used by Event Scheduler were found damaged at server start
後來上網查,得知會有這原因是因為現在的版本有做了相容性的偵測,所以要下指令進行升級才行
(怎麼5.1.31=>5.1.42就不能用啦@@),指令如下:
mysql_upgrade – u root -p
執行後記得要重新啟動MYSQL才能正常使用
後記,雖然有相容升級的修正程式,但有發現有參數(ex:default-time-zone= “UTC”)是用了舊版的資料庫是無法使用的,一用了就會無法啟動,所以還是不要偷吃步的好,還是先dump出來再import進去尤佳
參考資料:http://bbs.linuxtone.org/thread-5512-1-1.html
在Vista及Win7(還有Windows server 2008)上,預設安裝telnet 指令已經被拿掉了,這對我們這種「進階使用者」來說真是有點不給他方便。不過好在只是預設不安裝,還是可以指定給他裝回來
作法如下(以下為Win7的操作方式,其它版本的作業系統請自行摸索,已知Win Server 2008是在不一樣的地方):
1.先到控制台的程式集去,執行「開啟或關閉Windows功能」
2.應該可以很容易看到「Telnet用戶端」的選項,打勾後按下確定即可安裝
3.安裝後,到Dos Command下就可以下指令囉!!
以前要再加裝Windows本身的功能,都要把光碟片放上去才找的到,在win7 及 windows server 2008都不用~蠻方便的!
真的很豬頭,安裝Xampp已經二~三次了,每次都遇到這問題,而且又都記不住,這次又遇到這個問題,所以還是寫下來加深印象
_default_ VirtualHost overlap on port 80, the first has precedence
這問題是Windows上的XAMPP如果有設定Apache要使用Virtual Host,當你在conf/extra/httpd-vhost.conf裡加上Virtual Host後,再重啟Apache時會發現啟動不了,原因是httpd-vhost.conf裡有一行也要打開才行,就是下面這個參數
##NameVirtualHost *:80
把##拿掉改成
NameVirtualHost *:80
再重啟後即可正常,真是怪怪的XAMPP,明明預設就是有INCLUDE httpd-vhosts.conf,怎麼還不把這行啟用呢?
近期留言