您好我有一个邮件链接到我的网站链接是一个加密数据,主要问题是提取部分,如果我的加密数据有一个“+”符号,它不包括在提取的数据请参阅此处的数据示例:
index.php?s=NER4gXPSuaads+Cmb8LANA==
这是带有+号的链接 但是从我的firebase控制台 正如你所看到的那样,“+”符号不再存在,而是变成了一个空白区域。 我已经阅读了一些关于php urldecode的文章,它说所有Plus符号('+')都被解码为空格字符。所以我认为它可能与此有关......是否有解决方案呢?
以下是我尝试抓取它以供参考的方法
if($_GET['s']!='success') {
$ref =htmlspecialchars($_GET['s']);
} else {
$ref = "direct";
}
另外还有关于AES的加密信息.. 提前致谢
答案 0 :(得分:4)
设置和获取" s"当你在URL上设置它时,你需要urlencode()它,并在你获取它时使用urldecode()它。
它在我看来像" s"在URL上设置时可能没有进行URL编码。
答案 1 :(得分:2)
好的,所以我已经设法找到了我正在寻找的东西感谢@ cerebriform的评论
我是这样做的
$refenc = base64_encode($refence);
$refence
是AES加密的结果,因此在将其作为邮件发送之前它已经被重新编码,但这次使用base64_encode()
。那么它看起来如何,我会告诉你$final = base64_encode($rdfence);
。之后,它将被发送到我的邮件发送者所希望发送到的电子邮件..我的网站如何设法消除我的问题是从我使用的网址base64_decode()
检索链接...然后它解码另一个解码器将发生AES解密脚本现在解密它以从数据库中获取原始数据
这是最终的代码:
if($_GET['s']!='success') {
$d = base64_decode($_GET['s']);
$aes->setData($d);
$ref=$aes->decrypt();
} else {
$ref = "No Id";
}
感谢输入人员