gpt4 book ai didi

magento - 字符串问题 - 长度不正确 - 包含的某些字符未显示

转载 作者:行者123 更新时间:2023-12-04 06:19:37 25 4
gpt4 key购买 nike

我想升级 Magento Ogone 模块以匹配新的 SHASign 计算。
现在工作正常,但有一个问题......

我对 Magento 方法返回的一些字符串有疑问: Mage::getUrl('ogone/api/accept');

它返回一个字符串,其中包含一些不会在屏幕上打印的字符。我不知道为什么。

字符串(89)“ACCEPTURL=http://www.xxxxxxx.be/store/fr_be/ogone/api/accept/KKKKKKKKKKKKKKKKKKK”

KKKK = 来自 ogone 的密码

如果您检查长度不是 89 而是 80。
有一些隐藏的汽车,如果我执行 for 循环并逐个回显字符,我可以看到它们。

未显示的字符是:?___SID=U
我 checkin 了 Magento,并且 URL 中的 session id 参数已经被禁用。

在模块中,我需要获取发送到 Ogone 的所有表单字段并创建一个 SHA-1 字符串以确保数据完整性,该字符串仅对我和 Ogone 可用。
有了这个问题,我这边构建的 SHA-1 字符串与 Ogone 不同,因为表单中的 URL 显示时没有 ?___SID=U :告诉你它不会被打印!

所以首先我不知道为什么当我在配置中要求 Magento 不包含它时,为什么要包含它。
其次,为什么我看不到 var_dump() 或任何 echo 上的字符?

我该如何调试这种情况?我想那里有一些功能可以帮助我。

我用另一个函数修复了这个问题来构建 URL,这样我的 SHA-1 字符串就可以知道并且模块看起来工作正常。我的关注点更集中在 strlen 函数和散列函数看到的那些隐藏字符,而不是 echo 或任何其他打印函数。

感谢您的帮助,请原谅我的英语不好,而不是我的母语。

最佳答案

我也遇到了这个问题。

请注意,此“有效”用于打印出整个字符串:

for ($i = 0; $i < strlen($linkUrl); $i++) print $linkUrl[$i].' ';

但是这个省略了 ?___SID=U部分:
for ($i = 0; $i < strlen($linkUrl); $i++) print $linkUrl[$i];

我还尝试打印字符的数字代码(十进制),但它似乎只是有效的:
63 95 95 95 83 73 68 61 85

这是一个PHP错误吗?

我认为这是一个编码/多字节/Unicode 问题,但事实证明这只是 Magento 模板系统的特性。

我试过这段代码:( 注意 :在 Magento 模板代码中!)
echo 'Hello?___SID=UWorld';

不管你信不信,你会得到这个:
HelloWorld

因此,虽然 URL 是“错误的”,但 Magento 用来“隐藏”这些 URL 的机制更错误,只需执行 str_replace我认为是无证的。 (即使有文档记录,也没有人会想到这一点!)

关于magento - 字符串问题 - 长度不正确 - 包含的某些字符未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6760458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com