跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
PHP GET请求
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= PHP GET请求 = == 简介 == '''PHP GET请求'''是HTTP协议中用于从服务器获取数据的一种方法,通过URL传递参数。GET请求的特点是: * 参数直接附加在URL后(形如 <code>?key1=value1&key2=value2</code>) * 有长度限制(通常约2048字符) * 数据可见于地址栏,不适合传输敏感信息 * 可被缓存和书签保存 == 基本语法 == 在PHP中,GET请求的参数通过超全局变量 <code>$_GET</code> 数组访问: <syntaxhighlight lang="php"> // 示例:获取URL中?name=John的参数 $name = $_GET['name']; echo "Hello, " . htmlspecialchars($name); </syntaxhighlight> === 输入输出示例 === '''URL''':<code>http://example.com?name=John&age=25</code> '''PHP代码''': <syntaxhighlight lang="php"> $name = $_GET['name']; // "John" $age = $_GET['age']; // "25" echo "$name is $age years old."; </syntaxhighlight> '''输出''': <pre> John is 25 years old. </pre> == 安全性注意事项 == 使用GET请求时需注意: # 始终验证输入数据 # 使用 <code>htmlspecialchars()</code> 防止XSS攻击 # 敏感数据应使用POST请求 # 检查参数是否存在:<code>isset($_GET['param'])</code> == 实际应用案例 == === 案例1:搜索功能 === '''HTML表单''': <syntaxhighlight lang="html"> <form action="search.php" method="get"> <input type="text" name="query"> <button type="submit">Search</button> </form> </syntaxhighlight> '''PHP处理(search.php)''': <syntaxhighlight lang="php"> if (isset($_GET['query'])) { $searchTerm = htmlspecialchars($_GET['query']); echo "Search results for: " . $searchTerm; // 实际开发中这里会连接数据库查询 } </syntaxhighlight> === 案例2:分页系统 === '''URL示例''':<code>products.php?page=2&items=10</code> '''PHP代码''': <syntaxhighlight lang="php"> $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $itemsPerPage = isset($_GET['items']) ? (int)$_GET['items'] : 5; // 计算数据库偏移量 $offset = ($page - 1) * $itemsPerPage; </syntaxhighlight> == GET vs POST == {| class="wikitable" |+ HTTP方法对比 ! 特性 !! GET !! POST |- | 数据位置 || URL || 请求体 |- | 安全性 || 较低 || 较高 |- | 数据长度 || 受限 || 不受限 |- | 缓存 || 可缓存 || 不可缓存 |- | 典型用途 || 获取数据 || 提交数据 |} == 高级用法 == === 处理数组参数 === 可通过方括号语法传递数组: '''URL''':<code>http://example.com?colors[]=red&colors[]=blue</code> '''PHP代码''': <syntaxhighlight lang="php"> $colors = $_GET['colors']; // ['red', 'blue'] echo implode(', ', $colors); </syntaxhighlight> === URL编码 === 当参数包含特殊字符时需编码: <syntaxhighlight lang="php"> $search = "PHP & MySQL"; $encoded = urlencode($search); // "PHP+%26+MySQL" $url = "search.php?q=" . $encoded; </syntaxhighlight> == 常见问题 == === 问题1:未定义的数组键 === '''错误处理方式''': <syntaxhighlight lang="php"> // 不安全 $value = $_GET['non_existent']; // 会报Notice // 安全方式 $value = $_GET['non_existent'] ?? 'default'; </syntaxhighlight> === 问题2:类型转换 === GET参数总是字符串,需显式转换: <syntaxhighlight lang="php"> $id = (int)$_GET['id']; // 转换为整数 $price = (float)$_GET['price']; // 转换为浮点数 </syntaxhighlight> == 最佳实践 == 1. 对用户输入进行过滤和验证 2. 重要操作使用POST而非GET 3. 考虑使用 <code>filter_input(INPUT_GET, 'var', FILTER_SANITIZE_STRING)</code> 4. 为可选参数提供默认值 5. 对数值参数进行类型检查 == 总结 == GET请求是PHP表单处理的基础部分,适合: * 数据检索操作 * 可分享的URL * 非敏感数据传输 通过合理的安全措施和正确的使用方法,可以构建高效且安全的Web应用功能。 [[Category:编程语言]] [[Category:PHP]] [[Category:PHP表单处理]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)