Archive

作者Archive

register_globals於PHP6後不支援之排除法

2010年11月17日 尚無評論

在最近升級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被關掉也有解法,有興趣的人可以看剛剛上面那個連結,只是沒這個好改了!!

Categories: PHP Tags: ,

MySQL+innodb 準備要收費了

2010年11月14日 尚無評論

Mysql 被Sun買後不久,Sun也被Orcale買了,真不知~Oracle買Sun是為了Sun還是Mysql呀!!
前些日子看到Oracle還跳出來說會持續支援Mysql開放源始碼,但商人就是商人,看來還是想要找地方生錢出來才行

最近看到新聞,提及Mysql + Innodb 是要付費的,看來不只斷Mysql手腳而已,都快砍對半了,雖然還是有高效能的MyISAM可以使用,但沒支援交易模式,只能拿出來在小系統裡使用,看來要找個時間找一下配套方案才行。

目前比較合適的,可以算是無痛轉移的應該是可以移到MariaDB 或是Percona Server,可以改用xtraDB,看相關報導似乎xtraDB的效能有贏過Innodb呢~先記下來,等有空再玩玩。

如想知道更多資訊,請看以下連結:

Categories: 新知 Tags:

Cannot proceed because system tables used by Event Scheduler

2010年11月11日 尚無評論

最近在重裝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

Categories: Database Tags:

Win7 下要如何使用telnet 指令?

2010年11月9日 尚無評論

在Vista及Win7(還有Windows server 2008)上,預設安裝telnet 指令已經被拿掉了,這對我們這種「進階使用者」來說真是有點不給他方便。不過好在只是預設不安裝,還是可以指定給他裝回來

作法如下(以下為Win7的操作方式,其它版本的作業系統請自行摸索,已知Win Server 2008是在不一樣的地方):

1.先到控制台的程式集去,執行「開啟或關閉Windows功能」

先到控制台的程式集去,執行「開啟或關閉Windows功能」

2.應該可以很容易看到「Telnet用戶端」的選項,打勾後按下確定即可安裝

Telnet用戶端

3.安裝後,到Dos Command下就可以下指令囉!!

下telnet指令

以前要再加裝Windows本身的功能,都要把光碟片放上去才找的到,在win7 及 windows server 2008都不用~蠻方便的!

Categories: 小技巧 Tags:

安裝XAMPP出現_default_ VirtualHost overlap on port 80, the first has precedence問題排除方法

2010年11月4日 尚無評論

真的很豬頭,安裝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,怎麼還不把這行啟用呢?

Categories: 程式開發 Tags:
分頁: 上一頁 1 2 3 ... 18 19 20 21 22 23 24 ... 86 87 88 下一頁