標題:
新系統更新後舊的php碼已無法正常讀取
[列印本頁]
作者:
kangtacat
時間:
2026-1-28 10:29 AM
標題:
新系統更新後舊的php碼已無法正常讀取
目前已完成全站php碼修改,
但偶爾還是會跑出錯誤訊息,
瀏覽器會紀錄某些參數值,
在下次瀏覽時就會正常,
所以要在不同情況不同環境分別測試,
才會知道哪裡有問題,
目前人回娘家度假,
先紀錄一下回去再修改
Notice: Undefined index: onlinedetail in C:\AppServ\www\Discuz!\home.php on line 335
Notice: Undefined offset: 1 in C:\AppServ\www\Discuz!\home.php on line 44
新的php版本變的更嚴謹,
不接受沒有設定的參數,
一旦出現會顯示undefined,
變數有時有單引號或雙引號混用時就要大括號包起來,
如:echo "<input name=name value={$arr['name']}>";
表單送出參數時,
除了要設定post或get接收值外,
如果值是空白的也要賦予空白值,
寫法如:$name = $_POST['name'] ?? $_GET['name'] ?? '';
不然也是會出現undefined,
另外有些預設的函數或參數寫法已經不能使用,
改用更簡單的寫法,
例如:$HTTP_COOKIE_VARS、$HTTP_GET_VAR、$HTTP_POST_VAR
現在的寫法是$_COOKIE、$_GET、$_POST,
用舊的寫法會出現錯誤
作者:
eightwing
時間:
2026-2-2 02:46 PM
Notice: Undefined index: onlinedetail in C:\AppServ\www\Discuz!\home.php on line 335
這段是因為沒有onlinedetail的變數值,用isset()先判斷就可以了
Notice: Undefined offset: 1 in C:\AppServ\www\Discuz!\home.php on line 44
這段是陣列,0的時候有值但到了1就沒有了,可以用isset()也可以在前面就先給預設值,
例如
$ip_detail[0] = $ip_detail[0] ?? 0;
$ip_detail[1] = $ip_detail[1] ?? $ip_detail[0];
歡迎光臨 下班後論壇-不明所以版 華麗登場 (http://www.eightwing.idv.tw/Discuz!/)
Powered by Discuz!
3.1.2 Plus