PHP 5.4 開始 session_register() 出現錯誤訊息,解決方式
如果使用虛擬主機當系統更新 PHP 版本後造成系統運行時出現錯誤訊息:「Fatal error: Call to undefined function session_register() in ……..」
該錯誤訊息說明 session_register() 已經不存在了,因虛擬主機更新至新系統 PHP 官方版本已不再支援舊函式,
如果沒辦法控制系統 PHP 運行版本時,則您必序更新系統中的 seession 撰寫方式,
原始 PHP session_register() 官方網站說明:http://php.net/manual/en/function.session-register.php
函式支援版本:
(PHP 4, PHP 5 < 5.4.0)
session_register — Register one or more global variables with the current session
session_register() accepts a variable number of arguments, any of which can be either a string holding the name of a variable or an array consisting of variable names or other arrays. For each name, session_register() registers the global variable with that name in the current session.
解決方式(一):更改 session 語法
如:
session_register($variable)
更改為:
$_SESSION[$variable]
解決方式(二):自建 session_register 函式
如果 PHP 刪除了 session_register 函式,另一種解決方式就是….. 自行建立 session_register() 函式,在系統程式碼中加入下列片段:
- if (!function_exists(‘session_is_registered’)) {
- function session_is_registered($name) {
- if (isset($_SESSION[$name])) {
- return true;
- } else {
- return false;
- }
- }
- }
- if (!function_exists(‘session_register’)) {
- function session_register() {
- $args = func_get_args();
- foreach ($args as $key) {
- $_SESSION[$key] = $GLOBALS[$key];
- }
- }
- }
- if (!function_exists(‘session_unregister’)) {
- function session_unregister($name) {
- unset($_SESSION[$name]);
- }
- }
———————————
備註:上面程式碼片段建議使用在新系統中改用新版 PHP Session 寫法。