PHP:URL 传参时 MySQL 记录只显示一个单词的解决方案

php:url 传参时 mysql 记录只显示一个单词的解决方案

本文将解决 PHP 从 MySQL 数据库读取数据并通过 URL 传递时,由于空格导致参数值截断的问题。我们将介绍如何使用 rawurlencode() 函数对 URL 参数进行编码,确保完整地传递包含空格的字符串,并简要提及接收端页面参数处理的注意事项。

在 PHP 开发中,经常需要将从数据库中读取的数据通过 URL 传递给其他页面。然而,当数据中包含空格等特殊字符时,直接拼接 URL 可能会导致参数值被截断,只传递了第一个单词。这是因为 URL 本身不允许直接包含空格。要解决这个问题,我们需要对 URL 参数进行编码。

使用 rawurlencode() 函数进行 URL 编码

PHP 提供了 rawurlencode() 函数,可以将字符串进行 URL 编码,将空格替换为 %20 等 URL 安全的字符。

立即学习“PHP免费学习笔记(深入)”;

以下是修改后的代码示例:

query('SELECT book_category, COUNT(*) FROM books GROUP BY book_category') as $row) {        echo "";        echo "" . "" . $row['book_category'] . "" . "";        echo "";     }?>

在这个示例中,rawurlencode($row[‘book_category’]) 将 book_category 字段的值进行 URL 编码,确保包含空格的字符串能够完整地传递到 sidebar_cat_display.php 页面。

接收端页面参数处理

在 sidebar_cat_display.php 页面,你需要使用 $_GET 数组来获取传递过来的 book_cat 参数。由于我们使用了 rawurlencode() 进行编码,因此接收到的参数值是经过编码的。如果需要使用原始的字符串,可以使用 rawurldecode() 函数进行解码。

例如:


注意事项

始终使用 rawurlencode() 对 URL 参数进行编码,特别是当参数值可能包含空格、特殊字符或非 ASCII 字符时。在接收端页面,根据需要使用 rawurldecode() 对接收到的参数值进行解码。为了防止跨站脚本攻击 (XSS),在使用接收到的参数值之前,始终使用 htmlspecialchars() 函数对其进行转义。

总结

通过使用 rawurlencode() 函数对 URL 参数进行编码,可以有效地解决由于空格等特殊字符导致参数值截断的问题,确保数据能够完整地传递到目标页面。同时,在接收端页面需要注意对接收到的参数值进行解码和转义,以确保数据的安全性和正确性。

以上就是PHP:URL 传参时 MySQL 记录只显示一个单词的解决方案的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1268325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月10日 11:05:09
下一篇 2025年12月10日 11:05:34

相关推荐

发表回复

登录后才能评论
关注微信