PHP頁面傳值的6種獲取方法

2021-08-31 01:54:37 字數 2444 閱讀 3999

初學php,以前使用asp沒有這些傳值的這麼多說法,更不存在php版本相容的問題,但是php中遇到了。在網上有不少朋友遇到過php傳值的問題,大都是因為看了老php版本的教程但用著新版本的php引起的,這裡icech邊學邊記錄,整理了幾種php傳值的方法,就作為學習筆記了,也希望新學php的朋友少走彎路。

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

一般在頁面中傳值常見的是post、get和cookie幾種,所以下面我也主要介紹這幾種。php4以後都採用的是$_post、$_get等陣列來獲取網頁傳值。在php3.0及以下版本都是用的是$http_post_vars、$http_get_vars等陣列,具體**如下

echo $_post['dopost'];

?>

< form action="weste_net.php" method="post" name='form1' 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 'register_globals = ' . ini_get('register_globals');

?>

如果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)

}function _runmagicquotes(&$svar)

else

}return $svar;

}foreach(array('_get','_post','_cookie') as $_request)

= _runmagicquotes($_v);

}把以上**放到乙個公用的php頁面中,後面獲取網頁傳值的時候只需要使用就可以了。

來自:

PHP頁面傳值的6種獲取方法

php頁面傳值的6種獲取方法 1 php4以後獲取傳值的方法 一般在頁面中傳值常見的是post get和cookie幾種,所以下面我也主要介紹這幾種。php4以後都採用的是 post get等陣列來獲取網頁傳值。在php3.0及以下版本都是用的是 http post vars http get va...

php頁面間傳值的6種方法

1 php4以後獲取傳值的方法 一般在頁面中傳值常見的是post get和cookie幾種,所以下面我也主要介紹這幾種。php4以後都採用的是 post get等陣列來獲取網頁傳值。在php3.0及以下版本都是用的是 http post vars http get vars等陣列,具體 如下 ech...

php頁面之間傳值 PHP頁面間傳值的幾種方法

方法一 require once page a a hello page b require once a.php echo a.world 訪問b.php會得到 hello world!方法二 通過頁面跳轉時攜帶引數傳值 page a a world 點我跳到b.php page b echo h...