转载

PHP 之外的变量

HTML 表单(GET 和 POST)

当一个表单提交给 PHP 脚本时,表单中的信息会自动在脚本中可用。有很多方法访问此信息,例如:

Example #1 一个简单的 HTML 表单

  1. <form action="foo.php" method="POST"
  2.     Name:  <input type="text" name="username"><br /> 
  3.     Email: <input type="text" name="email"><br /> 
  4.     <input type="submit" name="submit" value="Submit me!" /> 
  5. </form> 

根据特定的设置和个人的喜好,有很多种方法访问 HTML 表单中的数据。例如:

Example #2 从一个简单的 POST HTML 表单访问数据

  1. <?php 
  2. // 自 PHP 4.1.0 起可用 
  3.    echo $_POST['username']; 
  4.    echo $_REQUEST['username']; 
  5.     
  6.    import_request_variables('p''p_'); 
  7.    echo $p_username;// 自 PHP 5.0.0 起,这些长格式的预定义变量 
  8. // 可用 register_long_arrays 指令关闭。   echo $HTTP_POST_VARS['username'];// 如果 PHP 指令 register_globals = on 时可用。不过自 
  9. // PHP 4.2.0 起默认值为 register_globals = off。 
  10. // 不提倡使用/依赖此种方法。   echo $username; 
  11. ?> 

使用 GET 表单也类似,只不过要用适当的 GET 预定义变量。GET 也适用于 QUERY_STRING(URL 中在“?”之后的信息)。因此,举例说,http://www.example.com/test.php?id=3包含有可用 $_GET['id'] 来访问的 GET 数据。

Note:

超全局数组例如 $_POST $_GET ,自 PHP 4.1.0 起可用。

Note:

变量名中的点和空格被转换成下划线。例如 <input name="a.b" /> 变成了 $_REQUEST["a_b"]

如上所示,在 PHP 4.2.0 之前 register_globals的默认值是 on。PHP 社区鼓励大家不要依赖此指令,建议在编码时假定其为 off

Note:

magic_quotes_gpc配置指令影响到 Get,Post 和 Cookie 的值。如果打开,值 (It's "PHP!") 会自动转换成 (It/'s /"PHP!/")。十多年前对数据库的插入需要如此转义,如今已经过时了,应该关闭。参见 addslashes() stripslashes() 和 magic_quotes_sybase。

正文到此结束
Loading...