我在 Opencart 主题的页脚中添加了一个基本的联系表单。例如我有:
if (($this->request->server['REQUEST_METHOD'] == 'POST') &&
(isset($this->request->post['enquiry_submit'])) && $this->validate()) {
这可以按预期正常工作。现在的问题是,如果您在其他页面(例如客户注册)并尝试发送页脚联系表,我会收到大量未定义的通知。
这里的问题很明显:
if (($this->request->server['REQUEST_METHOD'] == 'POST') &&
(isset($this->request->post['enquiry_submit'])) && $this->validate()) {
可能作为最后一个处理的 FOOTER 控制器中。if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
-因此,提交表单时,页脚之前的几乎每个控制器都尝试做他们的事情......这就是为什么你有一堆Undefined index
通知......我建议:
footer()
并在此处从页脚控制器移动所有提交后处理代码http://www.youropencartsite.com/index.php?route=contact/contact/footer
:。这样,您可以确保在提交来自页脚的联系表单时,将用户重定向到正常的联系表单,在该表单中调用一个具体方法来处理提交的数据,并且没有其他控制器参与数据处理......
将代码放在页脚的控制器中似乎是个好主意,但这确实意味着您最终将尝试发布到页脚本身以保证其每个页面都可用,这有点矫枉过正和不好实践。解决此问题的方法是: