將 PHP 從 4.0.6 升到 4.2.1 的注意事項
發(fā)表時間:2024-02-26 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]以前做了個購物網(wǎng)站的PHP程序,但前不久將PHP從4.0.6升到4.2.0后再一運行那程序就面目全非了(慘相啊.....:) 不過最終問題還是解決了,最近有人也碰到了相同的問題來問我,所以我干脆寫出來吧。 我碰到的出錯主要問題在PHP.INI中的配置參數(shù)register_globals=off 此...
以前做了個購物網(wǎng)站的PHP程序,但前不久將PHP從4.0.6升到4.2.0后再一運行那程序就面目全非了(慘相啊.....:)
不過最終問題還是解決了,最近有人也碰到了相同的問題來問我,所以我干脆寫出來吧。
我碰到的出錯主要問題在PHP.INI中的配置參數(shù)register_globals=off
此項設(shè)off后PHP的程序就不會自動從Cookie,Session及頁面地址"?"號后的參數(shù)中得到變量的值了,也不會自動接收form表單所傳的值,之所以默認這樣做是為了防止變量中毒(variable poisoning),PHP以前版本這一項不是默認off的所以沒出問題。
解決方法是:
echo $HTTP_COOKIE_VARS['variable'];//得到cookie的值
echo $HTTP_SESSION_VARS['variable'];//得到session的值
echo $HTTP_POST_VARS['variable'];//得到表單所傳的值-----相應(yīng)表單框名
echo $HTTP_GET_VARS['variable'];//得到"xxx.php?variable=123456"中問號后面所跟的變量值
echo $HTTP_SERVER_VARS['REMOTE_ADDR'];//得到對方IP地址
echo $HTTP_POST_FILES[''];//取得用表單傳過來的文件
?>
希望大家在今后寫代碼時盡量用如上的完整寫法(等出錯后再改代碼那可是勞民傷財啊),因為上面的那種寫法無論是在register_globals設(shè)為on時還是off時都不會出錯,且安全性更高。