【发布时间】:2017-07-07 16:40:37
【问题描述】:
我目前正在 OctoberCMS 的页面上创建一个执行 PHP 代码块的表单。
HTML/树枝:
{{ form_open({ request: 'onHandleForm' }) }}
Please enter a string: <input type="text" name="value"/>
<input type="submit" name='submitform' value="Submit me!"/>
{{ form_close() }}
<p>Last submitted value: {{ lastValue }}</p>
PHP:
function onHandleForm()
{
$this['lastValue'] = post('value');
}
如您所见,这非常简单,PHP 创建一个 twig 标签,其值等于用户输入,然后在 HTML 中输出。
但是,每次我在发布内容后尝试重新加载页面时都会出现错误:
您要查找的页面使用了您输入的信息。返回该页面可能会导致您重复执行的任何操作。要继续吗?`
我已经尝试了所有我能找到的方法,但我无法让该错误停止出现。我知道这与服务器在您重新加载页面时尝试重新发布相同的数据有关,但我终生无法弄清楚如何修复它,我已经尝试了使用重新加载页面的每一种方法我能找到的 PHP 似乎都不起作用。
请不要将其关闭为重复,如果任何现有帖子对我有帮助,我不会再发新帖子了。
更新:我不确定,但似乎重新加载页面并没有消除错误:我刚刚在我的表单中添加了onsubmit="window.location.reload()",现在当我提交它时会重新加载页面但错误仍然存在。
【问题讨论】:
-
我不确定这是否可行,但不要回复 200 OK 和内容到 POST,而是尝试告诉他们转到另一个页面以获得响应。我认为 301 或 302 都会这样做,但我不确定。他们会通过 GET 获得,刷新页面不需要重新发送 POST 来获取更新的内容。
-
“请不要将其作为副本关闭,如果任何现有帖子对我有帮助,我就不会制作新帖子了。” - 是哪些?您想在发布后重定向;我敢肯定我能找到不少被视为重复的。
-
是的,我找到了很多,但答案不够具体,无法提供帮助。我也找不到任何包含 Twig 的东西。他们中的大多数使用 PHP 文件,这是我没有使用 OctoberCMS 的一个选项,而且我无法成功地调整它们以使用我的代码,所以我希望有人会知道一种真正适用于我的方法代码,因为我现在已经花了 3 个小时试图解决这个小问题。
-
你在这里尝试过这些吗? stackoverflow.com/questions/768431/… 或使用错误报告? php.net/manual/en/function.error-reporting.php
-
是的,我都试过了。当然,几乎没有一个答案提供完整的代码示例,只是脱离上下文的 sn-ps,我不知道如何在自己的代码中使用,所以我可能只是错误地使用了 sn-ps,我不会不知道,我刚开始使用PHP。另外,虽然我还没有使用过错误报告,但我必须研究一下。
标签: php html twig octobercms