注意:由於官方給的修正檔只針對付費版,也就是說,如果我們以免費版強上修正檔的話,不免會有錯。
像http://wayneifo.blogspot.com/2010/10/ostube-26-ubuntu-1004php53.html說的一樣,如果付上class.banner的話,網頁會掛點…
(迷:但搞不好可以從這一些檔案挖一些付費版的功能,但,這是違法的…要注意)
1)signup.php(位置在osTube的根目錄下)
a)session_register() => $_SESSION()2)header.php(位置在osTube/admin/)
大約在101行,有一個「session_register("ostube_friend");」session_register()---此function在v5.3.0已被移除,詳細請看PHP manual-(session_register)修正:『$_SESSION("ostube_friend");』
a)session_register() => $_SESSION()3)tags.php(位置在osTube/admin/moduls/)
大約在17行,有一個「session_register("ostube_user", "ostube_pass", "ostube_language");」修正:『$_SESSION("ostube_user"); $_SESSION("ostube_pass"); $_SESSION("ostube_language");』b)set_magic_quotes_runtime(0) => ini_set('magic_quotes_runtime', 0)
大約在51行,有一個「set_magic_quotes_runtime(0);」set_magic_quotes_runtime()---此function在v5.3.0被移除,詳細請看PHP manual-(set_magic_quotes_runtime)修正:『ini_set('magic_quotes_runtime', 0);』不過,官方修正檔是直接把這51行直接給註解掉…沒用ini_set()…
a)session_register() => $_SESSION()4)header.php(位置在osTube/includes/)
大約在13行,「session_register("ostube_admin_tags_mark");」大約在14行,「session_register("ostube_admin_tags_search");」修正:『$_SESSION("ostube_admin_tags_mark");』『$_SESSION("ostube_admin_tags_search");』
a)session_register() => $_SESSION()5)class.database.php(位置在osTube/includes/)
大約在37行,「session_register("ostube_user", "ostube_pass", "ostube_language");」修正:$_SESSION("ostube_user");$_SESSION("ostube_pass");$_SESSION("ostube_language");b)set_magic_quotes_runtime(0) => ini_set('magic_quotes_runtime', 0)
大約在69行,「set_magic_quotes_runtime(0);」修正:『ini_set('magic_quotes_runtime', 0);』不過,官方修正檔是直接把69行給註解起來,沒有使用ini_set()c)??
??的意思,代表不是PHP 5.3不支援…在約172行,原檔這一行是註解起來的,是「// 'index' => array('index.php', array())」(註:原檔這一行沒用分號(;)做結尾但官方修正檔把這一行的註解給拿掉,等於是啟用它。修改:『 'index' => array('index.php', array())』(註:官方修正檔仍沒有用分號(;)做結尾)
a)??6)class.login.php(位置在osTube/includes/)
一樣,還是有鬼怪的地方。約在282、283行,在原檔的時候,它已經是把eregi()給註解起來不用,改用preg_match()了…不過,官方修正檔有再修正原先的preg_match()的rule…原檔:「if(!preg_match("^select",$sql)) return false;」修正:『if(!preg_match("/^select/i",$sql)) return false;』eregi()---此function在v5.3.0已被移除,詳細請看PHP manual-(eregi)
a)session_register() => $_SESSION()7)class.mail.php(位置在osTube/includes/)
約在98行,「session_register("ostube_next");」修正:『$_SESSION("ostube_next");』b)session_unregister() => unset($_SESSION())
約213、214行原檔的時候,是連用「session_unregister("ostube_next"); unset($_SESSION("ostube_next");」修正:把『session_unregister("ostube_next");』給註解起來,僅留下『unset($_SESSION("ostube_next");』約232、233行修正:把『session_unregister("ostube_user");』給註解起來,僅留下『unset($_SESSION("ostube_user");』約237、238行修正:把『session_unregister("ostube_pass");』給註解起來,僅留下『unset($_SESSION("ostube_pass");』
a) passing by reference---
約65、69、72、78行…你會看到call by reference的方式在new Swift_Message()…也就是在new前多加了「&」。據PHP manual-(Passing by reference)說…這樣的方式在v5.3.0就不建議且不支援使用(其怪,php不是可以oo嗎,因為oo不使用??)修正:反正在這四行的地方,你在new前面有看到「&」的都刪掉
所以,以這七個檔案可以推出…
session_register、session_unregister、set_magic_quotes_runtime、passing by reference的都要修正…
沒有留言:
張貼留言