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