在PHP4.2以后版本中使用表格數據
發表時間:2023-08-22 來源:明輝站整理相關軟件相關文章人氣:
[摘要]正如文章標題一樣,將會有越來越多關于PHP4.2以后版本出版和register_globals的討論。如果你的PHP程序以前工作正常,但是升級到PHP4.2以后出錯的話,請仔細閱讀以下內容:以前,在...
正如文章標題一樣,將會有越來越多關于PHP4.2以后版本出版和register_globals的討論。
如果你的PHP程序以前工作正常,但是升級到PHP4.2以后出錯的話,請仔細閱讀以下內容:
以前,在你的PHP中,可能有一個像下面表格:
<form action="page.php" method="post">
<input type="text" name="variable" />
<input type="submit">
</form>
而且,你可以像下面一樣簡單的訪問你的變量:
<?php
echo $variable;
?>
當升級到PHP4.2版本的時候出問題了--在安裝的時候,PHP默認設置了register_globals=off,這個register_globals是php.ini中設置是否允許直接使用變量上面例子中$variable的參數,直到PHP4.2以前的版本,register_globals都是默認為on,也就說可以直接輸出變量。然而,在PHP4.2以后的版本中,為了防止潛在的不安全代碼的溢出,PHP開發組已經將register_globals默認為off。
這就意味著以上的代碼不再有輸出。
[譯者注:通過一系列PHP函數的處理,也可以在register_globals=off的時候直接訪問變量。]
實際上,使用以上表格的時候,我們可以通過幾種方式訪問輸入的值。
因為我們使用了POST方式來提交數據,我們可以使用_POST數組,例如:
<?php
echo $_POST['variable'];
?>
或者,如果以上的表格通過GET方式提交,我們可以使用_GET數組:
<?php
echo $_GET['variable'];
?>
如果你出于某種因素不知道你使用了POST還是GET方式提交數據,你可以全部使用_REQUEST數組,例如:
<?php
echo $_REQUEST['variable'];
?>
cookies和會話(sessions)相應的數組變量名稱是_COOKIE和_SESSION,可以通過相同的方法來訪問變量的值。還有_SERVER, _FILES, _ENV和GLOBALS數組,這些都是PHP的全局變量,可以用于PHP的任何地方,包括用在函數和類中。
以下代碼也可以正常工作:
<?php
function printPost ()
{
foreach ( $_POST as $key => $value )
echo "$_POST[$key] => $value<br> ";
}
?>
你不需要在函數中使用語句'global $_POST;',就可以直接使用這個全局變量了。
更多的內容,請參考PHP在線手冊:
http://www.php.net/manual/en/language.variables.predefined.php