![]() |
![]() |
![]() |
![]() |
![]()
|
PHP从网页传递变量的改变 PHP 自从 4.1.0 开始,支持一种比较安全的变量传递方式。原本我们在写 PHP 程序时,从窗体以 POST 方式传入 PHP 程序时,PHP 可以直接拿来使用。例如,有一个窗体是下面这个样子:
当上述的 HTML 按了送出之后,在 test.php 这个程序就会有一个变量名为 $username,其值是我们所填入的名称。 但是使用者也可以直接在网址列输入 http://url/test.php?username=myname 来设定 $username 这个变量的值为 myname。 这会有什么问题呢?让我们以 PHP 4.1.0 release note 所提出的例子来说明。假设我们有一个程序如下:
使用者可以经由网址列输入一个变量 $authenticated=true,这样一来,不管是否通过 authenticate_user() 的检查,$authenticated 永远都是 true。 所以在 4.1.0 之后,有一个新的方式可以让我们使用,就是将传进来的变量全部都存在数组中。以第一个例子而言,我们以 POST 的方式从窗体传来变量 $username,新的取得变量方式是:$_POST["username"],也就是说所有以 POST 传递过来的变量全部存在 $_POST 这个数组中。详细说明请参考 http://www.php.net/release_4_1_0.php 。 在 4.2.0 之前,新旧二种方式都可以使用,但是在 4.2.0 之后,Default 只能使用新的方式来传递变量。所以如果你安装的了新 PHP 而发现无法使用旧的 PHP 程序,别惊讶。 如果您还是要以旧的方式来传递变量,请修改 php.ini (通常位于 /usr/local/lib/),将原本的 register_globals = Off 改成下列这个样子,并移除开头的批注符号 ";":
|
Top | Ths file was last modified: 2005 September 24 05:15:18. |
Copyright © 2002-2025 Alex Wang from www.twbsd.org. All rights reserved. |