PHP 简明教程

PHP $_GET

1. PHP $_GET 超级全局变量简介

$_GET 超级全局变量包含一个通过 HTTP GET 方法接收的变量数组。

PHP 超级全局变量是内置变量,并且在所有的作用域内始终可以访问!

通过 HTTP GET 方法发送变量主要有两种方式:

  • 通过 URL 中的查询字符串(Query Strings)
  • 通过带有 method="get" 属性的 HTML 表单

2. 通过 URL 查询字符串传递 $_GET

查询字符串是附加在 URL 末尾的数据。在下面的 <a> 元素中,? 符号之后的所有内容都属于查询字符串:

带有 URL 查询参数的 HTML 链接:

<html>
<body>

<a href="demo_phpfile.php?subject=PHP&web=begindev.com">测试 $GET</a>

</body>
</html>

上面的查询字符串包含了两个键/值对:

  • subject=PHP
  • web=begindev.com

在 PHP 文件中,我们可以使用 $_GET 超级全局变量来收集查询字符串中的值。

代码示例

PHP 文件 demo_phpfile.php

<html>
<body>

<?php
$subject = htmlspecialchars($_GET['subject']);
$web = htmlspecialchars($_GET['web']);
echo "在 $web 学习 $subject。";
?>

</body>
</html>

注意: 在使用诸如 $_GET 这样的超级全局变量所收集的数据之前,务必对其进行验证和清理,以防止出现诸如 XSS(跨站脚本)攻击之类的安全漏洞。上面示例中使用的 htmlspecialchars() 函数就是实现数据清理的一种方式。为了获得更强大的数据过滤能力,还可以使用 PHP 过滤器(Filter)函数。

3. 在 HTML 表单中使用 $_GET

如果表单的 method 属性被设置为 "get",那么该 HTML 表单就会通过 HTTP GET 方法提交信息。

为了演示这一点,我们首先创建一个简单的 HTML 表单:

HTML 文件:

<html>
<body>

<form action="welcome_get.php" method="GET">
  姓名: <input type="text" name="name">
  电子邮箱: <input type="text" name="email">
  <input type="submit" value="提交">
</form>

</body>
</html>

当用户点击提交按钮时,表单数据将被发送到 <form> 标签的 action 属性中所指定的 PHP 文件。

表单字段及其用户的输入内容将作为查询字符串发送到该 PHP 文件,格式如下:

welcome_get.php?name=John&email=john@example.com

在该 PHP 文件中,我们即可使用 $_GET 变量来收集输入字段的值。

代码示例

welcome_get.php 页面内的 PHP 代码:

<html>
<body>

欢迎 <?php echo htmlspecialchars($_GET["name"]); ?><br>
您的电子邮箱地址是: <?php echo htmlspecialchars($_GET["email"]); ?>

</body>
</html>

在处理表单和用户输入时,请务必建立安全意识!

上述示例并未包含严格的表单验证,其主要目的是展示如何发送和检索表单数据。对表单数据进行适当且严密的验证,是保护您的网站应用程序免遭黑客和垃圾邮件发送者攻击的关键环节!