首頁  >  文章  >  後端開發  >  php頁間傳值的6種方法

php頁間傳值的6種方法

PHP中文网
PHP中文网原創
2017-03-30 13:32:594581瀏覽

php頁間傳值的6種方法:

1、PHP4以後獲取傳值的方法


1、PHP4以後獲取傳值的方法

1、PHP4以後獲取傳值的方法

,所以下面我也主要介紹這幾種。 PHP4以後都採用的是$_POST、$_GET等陣列來取得網頁傳值。在PHP3.0及以下版本都是用的是$HTTP_POST_VARS、$HTTP_GET_VARS等數組,具體代碼如下

echo $_POST['dopost'];
?>

< form action="weste_net.php" method="post" name=&#39;form1&#39; id="form1">
< input type="text" name="dopost" value="hello weste.net!" />
< input type="submit" name="weste" value="提交" />
< /form>

2、舊版本PHP3以前的獲取傳值方法說了上面的傳值,可以使用$HTTP_POST_VARS、$HTTP_GET_VARS、$HTTP_COOKIE_VARS這些陣列讀取。在舊版的PHP中,也可以使用如$dopost的方法直接取得傳值,這種方法比較簡潔,在後面的幾種獲取網頁傳值的方法中,其實icech都是圍繞著如何能使用$dopost來取得網頁傳值的。

3、修改PHP.ini檔案的設定

還有一個問題是為什麼PHP3和PHP4及其以後會不相容呢?其實有一個很重要的原因是,在PHP4以後,PHP.ini檔案中的register_globals被預設為Off了。所以造成以前使用$dopost這種方法直接取得網頁傳值不能使用了。

簡單的方法來查看一下register_globals的值

echo &#39;register_globals = &#39; . ini_get(&#39;register_globals&#39;);
?>

如果register_globals=Off,顯示register_globals = 或者register_globals = 0

如果register_globals=On,顯示register_globals = 1手動修改register_globals為On,提交的表單中如果包含一個名為「dopost」的變量,那麼在PHP中就可以使用$dopost來取得該變數。但如果使用的是虛擬主機,想要修改php.ini檔案還是比較困難的。這裡只是提供一個方法。

4、使用import_request_variables函數

import_request_variables函數的作用就是將GET、POST、Cookie變數導入到全域作用域中,如果你禁止了register_globals,但又想用到一些全域變量,則不使用此。

語法:

bool import_request_variables(string $types[, string $prefix])

第一個參數可以是g、p或c,就是GET、POST、COOKIE變數的頭一個字母,意思也很明確;

第二個參數是導入後的變數前綴,可以隨意寫;

簡單的範例:

import_request_variables("p","p_");
echo $p_dopost;
?>
HTML部分參考方法1的,取得的是值為dopost輸入框變數。

5、使用extract函數

PHP extract() 函數從陣列中把變數匯入到目前的符號表中。對於陣列中的每個元素,鍵名用於變數名,鍵值用於變數值。第二個參數 type 用來指定當某個變數已經存在,而陣列中又有同名元素時,extract() 函數如何處理這樣的衝突。

語法:

extract(array,extract_rules,prefix)

使用方法:

if(!empty($_POST)) extract($_POST);
echo $dopost;
?>
這種方法很簡單吧?也很實用。

6、dedecms裡面使用的方法

在dede中,事先判斷

了register_globals的值,如果是Off就調用下面的程序,如果是On,那麼就可以直接用了。具體的程式碼如下,放在了common.inc.php檔案中

//检查和注册外部提交的变量
foreach($_REQUEST as $_k=>$_v)
{
if( strlen($_k)>0 && eregi(&#39;^(cfg_|GLOBALS)&#39;,$_k) && !isset($_COOKIE[$_k]) )
{
exit(&#39;Request var not allow!&#39;);
}
}
function _RunMagicQuotes(&$svar)
{
if(!get_magic_quotes_gpc())
{
if( is_array($svar) )
{
foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);
}
else
{
$svar = addslashes($svar);
}
}
return $svar;
}
foreach(Array(&#39;_GET&#39;,&#39;_POST&#39;,&#39;_COOKIE&#39;) as $_request)
{
foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}
🎜把以上程式碼放到一個公用的php頁面中,後面取得網頁傳值的時候只要使用就可以了。 🎜🎜以上就是php頁間傳值的6種方法的內容,更多相關內容請關注PHP中文網(www.php.cn)! 🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn