【问题标题】:How create cHash for an extbase action link如何为 extbase 操作链接创建 cHash
【发布时间】:2020-04-13 19:45:52
【问题描述】:

我需要一个操作链接,可以通过电子邮件发送。

这适用于使用 viewhelper "f:link.action"。举个例子:

<f:link.action action="changePw" id="changePw" absolute="true" arguments="{email : uSetup.uEmail, user : uSetup.uName}"></f:link.action>

现在我有一个问题,在使用的表单中,用户可以更新他的电子邮件。在这种情况下,该链接没有用,因为它包含旧的电子邮件地址而不是新的电子邮件地址,这是必需的!

我已经找了几个小时,但找不到任何有用的解决方案。

最好的办法是,如果可以在 php 程序中创建链接,然后运行 ​​Typo3 php 例程,它会为我创建所需的 cHash 值。出于安全考虑,我不会关闭 cHash 功能。 是否有 Typo3 函数,可以为我创建 cHash 值?

另一种方法是更新 viewhelper,它使用来自电子邮件文本字段的实际值。但是我该怎么做呢?

提前感谢您的支持。

【问题讨论】:

    标签: typo3 extbase


    【解决方案1】:

    如果您生成 URL,则会自动生成 cHash。

    数据可以通过两种方式从客户端传输到服务器:GET 和 POST 参数。

    如果您想保护这些参数,请使用 cHash 保护它们。哈希表示静态参数列表。这些在服务器端被替换,覆盖来自客户端的任何值。

    所以很明显:如果该值可以在表单中更改,则不能在 cHash 中使用该值。您需要将电子邮件地址从 cHash 中排除,以获取可以更改电子邮件的表单。


    您可以定义一个替代字段(其他名称 => 其他 URL 参数),可以在其中插入新电子邮件,并在提交后通过替代字段更新电子邮件。

    【讨论】:

    • 您好 Bernd,我不能排除电子邮件,因为对于电子邮件,我只能使用 Get 参数!
    • 也许,我已经足够清楚地指出了我的问题。我想通过字符串(手动)创建指向操作的链接。首先将 URL 放入字符串中。比添加动作、控制器和最后的参数。这将是一个完整的 GET,但 cHash 会丢失。如何获取此字符串的 cHash 值?
    • 一旦有可能从客户端在 cHash 中插入(或更改)任何参数,cHash 的值就会过时。
    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2021-01-10
    • 2013-11-15
    相关资源
    最近更新 更多