2018年2月18日 星期日

從PHP5.1改成PHP5.4

首先遇到的第一個問題是:
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]);
    }
}

以上三個函數到global include裡,這樣會自然解決問題

第二個問題是 header('Location ....')
會產生500錯誤的問題
此問題頗為麻煩,目前無固定的解決方案

因為header並非不能用
如果不透過函數直接使用,然後接上exit,多半是成功的
但是很多是寫在go 函數裡
其中一種是修改 go 函數

function go($url){
  ob_end_clean();
   echo "
    <script>
       setTimeout(function(){ location.replace('{$url}'); }, 0);
    </script>
    ";
   die();
}

ob_end_clean() 可以清除原先 echo 出去的文字




沒有留言:

張貼留言