当前位置:首页 > 日记 > 正文

PHP中特殊字符和特殊字符URL传输的解决方案

PHP中特殊字符和特殊字符URL传输的解决方案
我们需要在URL中传输汉字或其他特殊字符,如HTML。似乎总是混乱。不同的浏览器对它们有不同的编码。

对中国人来说,一般做法是:

在通过这些文本字符串的URL,先进行urlencode($文本);

但是对于一些危险字符,如HTML字符甚至SQL注入相关字符,如果它们显然传输到系统,出于安全原因,系统将过滤掉它们。

现在,我们需要这些危险人物,我们应该这样做吗

我认为这是他们的第一代码的方式,base64_encode($文本),并给他们base64_decode($文本)解码在服务器端。

这似乎很完美,但在使用过程中还有另一个问题。的base64_encode编码的字符串包含的字符,如 /
(base64_encode)由于在用户输入的传递函数(少量的内容),当用户提交(提交后)在一个数组。所以我把这个想法与bse64_encode()函数来加密。当跳转到页面进行处理时,我给获得接收,两边的加密数据不会出现这一点。少一+字。

用户提交加密:

tpk9tnpnykususe6xyyjndy7jim0njsufmavwcehfmyrxq / bwchllmjdztlo3tpvlnxmz + vi69ehskehfhw =
处理页面是通过GET接收的:

tpk9tnpnykususe6xyyjndy7jim0njsufmavwcehfmyrxq / bwchllmjdztlo3tpvlnxmz vi69ehskehfhw =

对比发现少了一个加号,不知道是什么原因来引导(猜测它可能得到,+字符可能得不到它!)还要问一下主手指。

这些字符在URL编码和特殊字符中,例如+

所以,一个妥协的思想,第一个Base64编码后的特殊字符替换,到服务器,并替换:
Resolvent:

用户提交加密字符串。有一次,我不得不改成其他角色+角色。如:str_replace(+,'_,$content);
两。在页面处理转换一次又一次:如:str_replace('_ ',+,$的内容);

复制代码代码如下所示:
功能base_encode($str){
$ =数组()
美元区=阵列(_a
老base64_encode美元($str);
新= str_replace美元(美元美元美元区,SRC,老);
返回$新;
}

功能base_decode($str){
$ src=阵列(_a
美元区=阵列( /
老str_replace美元($ SRC,美元区,$str);
新的美元= base64_decode($岁);
返回$新;
}

以下是浏览器中的效果

xoo6w6osuf65_aiy_atl_b00ke5_b8jnus6ho6gjoam_c

该urldecode的实例方法很简单

URLDecode(String str)
给定的编码解码字符串有% # #返回解码后的字符串。

1例# urldecode()的例子

复制代码代码如下所示:
< PHP
美元=爆炸('',query_string美元);
$ I = 0;
当($ i <计数($ A)){
$ =拆分(t,$ $ { i });
参数echo'value,htmlspecialchars(URLDecode($ { 0 })),
'是',htmlspecialchars(URLDecode($ { 1 })),;
美元+;
}
>

相关文章

OracleSQL重复记录无明显

OracleSQL重复记录无明显

电脑软件,OracleSQL,使用单独关键字只能在查询字段(相同的记录集)中过滤相同的记录,但是如果您想指定字段,它将不起作用,否则,将对不同的关键字进行排序,并且效率非常低。 从T1中选择不同的名称可以消除重复的记录,但只有一个字段可以被接受,id、名…

如何查看相册在空间中的创建时间

如何查看相册在空间中的创建时间

空间,时间,电脑软件,如何查看相册在空间中的创建时间 1、登录到你的QQ空间,点击导航相册按钮; 2、点击进入你需要查看的创建时间相册; 三.查看页面的右下方是很方便的。…

为什么在获得验证代码之前我不能关

为什么在获得验证代码之前我不能关

验证,窗口,代码,电脑软件,关闭验证窗口将刷新页面,会导致6位数字随机码的变化,如果在发送短信验证码来验证使用你,你将被提示随机验证码窗口已经更新,请按照最新的验证窗口提示发送短信获取验证码。如果你不小心关闭窗口,你可以只发送一个短消息…

如何备份计算机系统的信息例如分区

如何备份计算机系统的信息例如分区

备份,计算机系统,硬盘,电脑软件,注释:如何备份计算机系统信息例如,分区备份、硬盘克隆和备份、备份和恢复等。在详细介绍下,感兴趣的朋友不要错过。 一、分区备份 使用系统备份的幽灵,还有整个硬盘两种方式(盘)和分区的硬盘(分区),在菜单中,点击的地…

Windows8关机的几种方法

Windows8关机的几种方法

几种方法,电脑软件,点评:Win8没有传统的开始按钮,不想,一时间不知道如何关掉机器吗以下是几种类型的Win8下关机,需要的朋友可以参考下 方法1: 地铁界面下的Win + I键打开设置窗口,机器按钮,或通过魅力菜单,选择设置,效果等于赢+我; 魅力菜单打开:Win C…

RAC高速缓存融合机制实现原理分析

RAC高速缓存融合机制实现原理分析

高速缓存,原理分析,机制,电脑软件,RAC,在一个实例中,如果一个进程要修改的数据块,有必要对数据块的当前版本修改RAC环境(currentcopy)。 这涉及到一系列的问题: 如何在集群节点之间的数据块版本之间获得分布图 你怎么知道哪个节点有当前版本 你…

PACIS是pacis.exe-使用

PACIS是pacis.exe-使用

电脑软件,PACIS,pacis,exe,点评:pacis.exe的trojandownloader.small.abd病毒下载器的一部分。这个过程会下载其它病毒到您的计算机 进程文件:PACIS或pacis.exe 进程名称:SMALL.ABD Variant Trojan 过程类别:安全风险的过程 英文描述: pacis.ex…

曾经的美,留下的只是伤害…

曾经的美,留下的只是伤害…

电脑软件,Asymp;他笑起来像一缕春风,但吹开我心中的桃花。 我想我的温柔能给你整个宇宙。 如果爱情在危险的边缘,是否所有的伤痕都将是苦涩的。 在你的保护下离开的习惯已经成为一种人类无法控制的创伤——爱的伤害。 怎么一个美丽的身体,…

PHP使用常规过滤JS脚本代码实例。

PHP使用常规过滤JS脚本代码实例。

脚本,代码实例,过滤,常规,电脑软件,匹配规则不使用。 源代码示例: 复制代码代码如下所示: 标题(内容类型:文本/ HTML;字符集= UTF-8); $ = 测试php,正则匹配,js代码测试,php正则匹配,js代码测试,php正则匹配,js代码测试,php正则匹配,js代码测试,php正则…

Linux是如何结束进程的

Linux是如何结束进程的

结束进程,电脑软件,Linux,注释:首先,使用ps - EF命令确定PID以杀死进程,然后输入以下命令: #杀PID 注意:标准的终止命令通常是实现的。终止有问题的进程并将进程的资源释放到系统。但是,如果进程启动子进程并仅杀死父进程,子进程仍在运行,所以资源…

ctbclick.exe过程的弹出广告和ctbc

ctbclick.exe过程的弹出广告和ctbc

弹出,过程,广告,电脑软件,ctbclick,点评:ctbclick.exe是验证软件监控你的个人浏览行为并将它返回到其服务器进行分析的过程中也会弹出广告。 进程文件:ctbclick或ctbclick.exe 进程名称:CTB点击间谍 过程类别:安全风险的过程 英文描述: ctbcli…

个性网名:分手不是最痛苦的事

个性网名:分手不是最痛苦的事

网名,最痛苦,个性,电脑软件,我付出的不多,但这是我能给你的全部。 我想要很多,但只有一个你够了。 李 不要等我消失,你知道我的存在。 不要等到我的眼泪,你才能明白我的悲伤。 李 QQ爱好者的个性签名:想呼吸你呼吸的空气& QQ情侣签名:想看…