PHP 會話副作用警告:全域變數出現問題
嘗試託管PHP 網站時,您可能會遇到一條警告,指出您的腳本依賴PHP 4.2.3 中已棄用的會話副作用。當會話擴充功能無法將全域變數識別為資料來源時,除非啟用了 register_globals 選項,否則會出現此警告。
了解問題
全域變數是指可以從腳本內的任何範圍進行存取。在舊版的 PHP 中,會話擴充功能會自動將全域變數註冊到會話中。然而,這種行為被認為是一種安全風險,並在 PHP 4.2.3 中被刪除。
追蹤來源
要辨識警告的來源,請尋找在會話情境中使用全域變數的實例。具體來說,檢查與會話變量同名的變量,因為這可能會導致警告。
停用警告
您可以透過設定 PHP 來停用警告設定選項「session.bug_compat_warn」和「session.bug_compat_42」為「off」。這些設定可以透過以下方式配置:
session.bug_compat_warn = 0 session.bug_compat_42 = 0
php_value session.bug_compat_warn 0 php_value session.bug_compat_42 0
php_value session.bug_compat_warn 0 php_value session.bug_compat_42 0
替代解決方案:ini_set('session.bug_compat_warn', 0);
ini_set('session.bug_compat_42', 0);
或者,您可以透過將以下行加入腳本來阻止PHP 嘗試尋找現有變數:
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3