首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Magento中提交联系表单后重定向到特定页面

在Magento中,提交联系表单后重定向到特定页面可以通过以下方法实现:

  1. 创建一个自定义模块:

首先,需要创建一个自定义模块,以便在其中添加自定义代码。在Magento项目的app/code目录下创建一个新的文件夹,例如MyCompany/ContactFormRedirect,并在其中创建etc文件夹。在etc文件夹中创建module.xml文件,其中包含以下内容:

代码语言:xml
复制
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
   <module name="MyCompany_ContactFormRedirect" setup_version="1.0.0">
       <sequence>
           <module name="Magento_Contact"/>
        </sequence>
    </module>
</config>
  1. 创建一个自定义控制器:

在自定义模块中创建一个控制器,用于处理联系表单提交并重定向到特定页面。在app/code/MyCompany/ContactFormRedirect/Controller目录下创建ContactForm.php文件,其中包含以下内容:

代码语言:php
复制
<?php
namespace MyCompany\ContactFormRedirect\Controller;

use Magento\Framework\App\Action\Context;
use Magento\Framework\App\Action\Action;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\App\RequestInterface;
use Magento\Contact\Model\ContactFactory;
use Magento\Contact\Model\ConfigInterface;
use Magento\Framework\Mail\Template\TransportBuilder;
use Magento\Framework\Translate\Inline\StateInterface;
use Magento\Framework\App\Action\HttpPostActionInterface;

class ContactForm extends Action implements HttpPostActionInterface
{
    protected $_contactFactory;
    protected $_config;
    protected $_transportBuilder;
    protected $_inlineTranslation;
    protected $_pageFactory;

    public function __construct(
        Context $context,
        ContactFactory $contactFactory,
        ConfigInterface $config,
        TransportBuilder $transportBuilder,
        StateInterface $inlineTranslation,
        PageFactory $pageFactory
    ) {
        $this->_contactFactory = $contactFactory;
        $this->_config = $config;
        $this->_transportBuilder = $transportBuilder;
        $this->_inlineTranslation = $inlineTranslation;
        $this->_pageFactory = $pageFactory;
        parent::__construct($context);
    }

    public function execute()
    {
        $post = $this->getRequest()->getPostValue();
        if ($post) {
            $this->_inlineTranslation->suspend();
            $contact = $this->_contactFactory->create();
            $contact->setData($post);
            $errors = $contact->validateData();
            $this->_inlineTranslation->resume();
            if (!count($errors)) {
                $contact->send();
                $this->messageManager->addSuccessMessage(__('Your inquiry was submitted and will be responded to as soon as possible. Thank you for contacting us.'));
                return $this->_redirect('contact/index', ['_fragment' => 'form']);
            } else {
                foreach ($errors as $error) {
                    $this->messageManager->addErrorMessage($error);
                }
            }
        }
        $resultPage = $this->_pageFactory->create();
        return $resultPage;
    }
}
  1. 配置路由:

在自定义模块中创建一个路由配置文件,以便将联系表单提交请求路由到自定义控制器。在app/code/MyCompany/ContactFormRedirect/etc目录下创建frontend文件夹,并在其中创建routes.xml文件,其中包含以下内容:

代码语言:xml
复制
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
   <router id="standard">
       <route id="contactformredirect" frontName="contactformredirect">
           <module name="MyCompany_ContactFormRedirect" />
        </route>
    </router>
</config>
  1. 更新联系表单:

最后,需要更新联系表单的action属性,以便将表单提交请求路由到自定义控制器。在app/design/frontend/<Vendor>/<Theme>/Magento_Contact/templates/form.phtml文件中找到表单元素,并将其action属性更改为:

代码语言:html
复制
<form action="<?php echo $block->getUrl('contactformredirect/contactform/index') ?>" id="contactForm" method="post">

现在,当用户提交联系表单时,他们将被重定向到特定页面,而不是默认的联系页面。可以通过在ContactForm控制器中自定义_redirect方法来更改重定向页面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

跨境 cloak 独立站斗篷

标准斗篷cloak标准的斗篷cloak的应用场景,都是面向使用google gmc的推广方式,需要有很强的隐蔽性,对于商品的标题,图片等都需要做正规化处理,特定环境显示,对于这类商品,存在如下的特点:...商品的图片侵权商品的title侵权商品的description侵权那么,除了商品详情页面让用户看到这些信息,其他都要使用正品数据,譬如:商品详情页google analysis,advertis js...为了更好的理解站点斗篷模式,我们举个例子,方便理解你用 a.com 搞了一个站,用wp做的你用 b.com 搞了一个站,用magento做的你a.com上面搞了斗篷,通过斗篷和广告参数,进行顾客识别 ...如果是爬虫,那么你返回wp新建的站点内容 如果是正常顾客,那么你返回magento新建的站点内容也就是整站替换(访问a.com显示的是b.com,页面内容和直接访问b.com效果是一样的)。...fecify后台配置中选择关联的副本站即可实现不重定向跳转且域名不改变的前提下,显示不同的内容。

17200

就一加手机支付漏洞讨论在线支付中的安全风险

OnePlus则表示,他们不负责处理任何的支付卡信息,支付交易的处理是由CyberSource处理的,但是支付表单却仍然托管OnePlus的基础设施中。...我们对OnePlus的结算页面源代码进行了分析,但是并没有发现任何的恶意JavaScript代码,不过也有可能是攻击者完成攻击之后将恶意代码移除了。...当用户点击了订单按钮之后,用户的浏览器会向OnePlus电子商务服务器发送请求; OnePlus电子商务服务器会返回带有支付表单的HTML页面; 客户表单中输入自己的支付信息,然后点击提交按钮; 支付数据直接从用户的浏览器发送到了...CyberSource 当OnePlus电子商务服务器给用户返回带有支付表单的HTML页面之后,注入在其中的JavaScript代码将会把用户所输入的全部内容(信用卡数据)发送给攻击者。...事件更新#1 OnePlus引入了CyberSource Magento插件来尝试解决这个问题: CyberSource通过研究发现,用户所提交的所有支付数据都直接在客户端浏览器中完成了操作,而且并没有触及电子商务基础设施

1.4K100
  • 去年销售额近百亿的一加手机 海外官网oneplus.net疑遭黑客攻陷

    大量的OnePlus用户开始各大平台抱怨,称他们通过OnePlus官方网站购买手机遭遇了信用卡诈骗。 网络安全公司Fidus发现这个情况,对OnePlus官网进行了针对性的分析。...根据Fidus的说法,既然用户是通过OnePlus官网的支付页面进行付款的,这意味着所有付款细节都会通过OnePlus官网进行传输,并且可能被黑客拦截。...虽然,付款细节提交表单时被发送给了第三方提供商,但在数据被加密前,还有一个窗口可以让恶意代码抽取信用卡细节。...该公司承认oneplus.net的确是建立Magento电子商务平台之上,但自2014年以来,它已经完全使用自定义代码进行重新构建。 OnePlus论坛上,有近100个关于信用卡欺诈交易的索赔。...OnePlus宣布,对此事件正在进行正式的调查,并建议受影响的用户尽快与其银行进行联系。 本文由黑客视界综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。

    91470

    一加海外官网疑遭入侵,用户支付信息泄漏导致信用卡欺诈

    今年一加手机用户的第一个坏消息是,大量的一加手机用户在从一加手机官网(海外)购买产品举报了欺诈性的信用卡交易。 一加论坛的一位客户最初声明中表示,他公司官方网站上使用的两张信用卡涉嫌欺诈活动。...Fidus写道:“虽然支付细节提交表单被发送给第三方提供商,但是在数据被加密之前,还有一个窗口可以让恶意代码抽取信用卡细节。...一加没有透露有关事件的很多信息,但确认其官方网站不受任何Magento漏洞的影响。...该公司确认oneplus.net确实是建立Magento电子商务上,但自2014年以来,它已经完全使用自定义代码进行重新构建,并补充说:“信用卡支付从未在Magento的支付模块中实现。...一加论坛上,有近100个欺诈性的信用卡交易索赔。一加宣布对此事进行正式调查,并建议受影响的用户与其银行联系以扭转付款情况。

    1.1K60

    *当你浏览器地址栏输入一个URL回车,将会发生什么事情?*

    *当你浏览器地址栏输入一个URL回车,将会发生什么事情?...*除GET请求外,还有一种常见请求是POST请求通常用于提交表单,二者的区别是GET请求不能带正文,但可以URL中带参数;POST请求可以带正文,并在正文中携带参数。...以下是原文作者访问facebook.com时检索的一些URL: 这些URL中的每一个都将经历类似于HTML页面经历的过程,但是与动态页面有所不同,静态文件允许浏览器进行缓存,某些文件可能会从缓存中提供...,而无需联系服务器。...十、浏览器发送进一步的异步(AJAX)请求 *即使呈现页面,客户端仍然与服务器进行通信。

    2.2K30

    离开页面前,如何防止表单数据丢失?

    向用户添加一个确认对话框,询问他们具有未保存表单更改的情况下是否确认重定向是一种良好的用户体验实践。通过显示此提示,用户将意识到他们有未保存的更改,并允许继续重定向之前保存或丢弃它们的工作。...为了使我们的示例更具代表性,我们添加一个名为 Home 的新路由,它将重定向表单之外。 Home 组件很简单,只显示一个主页问候语。...使用 Prompt 时,导航主页路由时行为正确,但是当用户输入表单数据并进入下一步时,确认对话框也会出现。这是不希望的,因为我们导航下一步时保存表单数据。...设置完成,我们现在可以实现重定向阻止功能。我们首先通过 FormPrompt 中使用在6.6版本中引入的 useBeforeUnload 钩子来替换 onbeforeunload 逻辑。...最后,我们 usePrompt 钩子中抽象出阻止逻辑并管理阻止器的状态。 我们可以通过导航联系步骤,填写一些字段并单击主页导航项来测试 FormPrompt 是否按预期工作。

    5.8K20

    关于“Python”的核心知识点整理大全58

    2处,我们调用了函数logout(), 它要求将request对象作为实参。然后,我们重定向主页(见3)。 3. 链接到注销视图 现在我们需要添加一个注销链接。...本节中,我们将修改模型Topic,让每个主题都归属于特定用户。这也将影响条目,因为 每个条目都属于特定的主题。我们先来限制对一些页面的访问。...如果用户未登录,就重定向登录页面。 为实现这种重定向,我们需要修改settings.py,让Django知道到哪里去查找登录页面。...,将被重定向登录页面。...另外,你还不能单击 new_topic等页面的链接。但如果你输入URL http://localhost:8000/new_topic/,将重定向登录 页面

    11910

    CVE-2020-35489 WP插件Contact Form 7任意文件上传

    该插件允许WP管理员在他们的网站上创建联系表格,访客可以在其中输入联系信息,如反馈或支持。...我将使用联系表格7 v5.3.1来展示这个漏洞,因为这个漏洞已经2020年12月17日的5.3.2版本中被修复。 设置 1. 我们下载、导入、安装,然后激活插件。 联系表格7插件安装并激活 2....现在我们从侧边栏进入 "联系 "选项卡,点击 "添加新的 "按钮,创建一个新的表单。 3. 本演示中,我们将创建一个 "工作申请表",其中有一个文件上传栏,用于申请人的简历。 4....最后将这个表单添加到一个页面中,并发布。 攻击场景 现在我们访问新创建的页面,并在文件上传字段中提交一个文件名为exploit.php.jpg的表单。 ?...其后果可能是: 接管整个网站 恶意软件注入,窃取信用卡信息,将访问者重定向恶意网页。

    6.3K10

    来学习下Salesforce的UI

    标签显示页面的顶部,个人用户可以进行修改,以适应他们的工作方式。当然管理员也可以在后台修改,根据Profile来影响不同的用户。 点击一个标签名称将会重定向相应的功能页,包含几个操作。...通过单击所有者的名字,您将被重定向所有者的个人信息资料中(profile)。点击其他页面上的链接将会将用户重定向一个新的相关页面或让他们执行特定的操作。...表单字段 表单字段允许用户在记录中输入数据。在上面的截图中,客户名称以及其它联系信息,包括地址都是表单字段。我们今天不会讨论不同的字段类型,但是有几种类型的字段,可以用来创建捕获各种各样的数据。...通过点击页面的顶部设置,我们被重定向Salesforce的核心管理区域。需要特别注意的是,通常只有系统管理员有访问设置的权限。...每个模块中,您可以点击任何子模块前的箭头,模块中的树形结构将会打开。当你设置页面中工作过一阵子,设计并对系统进行修改几次,你会慢慢熟悉这些操作并知道在哪里会快速、容易的去导航这些功能。

    1.7K10

    CentOS 7上安装Magento

    Install Magento on CentOS 7 译者微博:@从流域海域 译者博客:blog.csdn.net/solo95 CentOS 7上安装Magento 在这篇教程中,您将学习如何在...你需要为PHP和Magento分配最多2GB的内存才能使用; 较小内存的Linode上运行Magento可能会导致服务器崩溃或在中大流量情况下不可靠。...> 浏览器中访问此页面并确认PHP正常工作,请删除测试页。...注意选择版本时,请参阅Magento的前提条件以确保特定版本与LAMP堆栈组件的兼容性。撰写本文时,Magento 2.1.2版本与本教程中介绍的所有软件包版本兼容。...准备好将站点部署生产模式,请参阅Magento的所有权和权限教程,以获取更全面的建议集。 注意如果将来需要进行其他配置更改,则需要再次手动添加写入权限。

    14K60

    CentOS 7上安装Magento(Install Magento on CentOS 7 译文)

    -7/ 译者微博:@从流域海域 译者博客:blog.csdn.net/solo95 CentOS 7上安装Magento 在这篇教程中,您将学习如何在CentOS 7上安装Magent。...你需要为PHP和Magento分配最多2GB的内存才能使用; 较小内存的Linode上运行Magento可能会导致服务器崩溃或在中大流量情况下不可靠。...> 浏览器中访问此页面并确认PHP正常工作,请删除测试页。...注意选择版本时,请参阅Magento的前提条件以确保特定版本与LAMP堆栈组件的兼容性。撰写本文时,Magento 2.1.2版本与本教程中介绍的所有软件包版本兼容。...准备好将站点部署生产模式,请参阅Magento的所有权和权限教程,以获取更全面的建议集。 注意如果将来需要进行其他配置更改,则需要再次手动添加写入权限。

    9.4K50

    涉及13万个域名,揭露大规模安全威胁活动ApateWeb

    ApateWeb活动中,威胁行为者会使用精心制作欺骗性电子邮件,引诱目标用户点击恶意URL,并将JavaScript嵌入目标网站页面,然后将流量重定向至其恶意内容。...URL包含了大量特定的参数(如上图所示),ApateWeb仅通过这些特定参数传递恶意内容,如果这些参数丢失或被修改,那么目标用户将接收到错误页面或根本无法接受任何内容。...这个UUID会被存储Cookie中,同时也服务器端共享。 下图显示的是第二个代码段,该代码段负责将UUID设置一个HTML表单的隐藏字段中,并自动以共享信息的形式提交到服务器端。...如果有人直接查看ApateWeb控制的域名或网站,该域名会重定向热门的搜索引擎或空白页面,如下图所示。如果目标用户的浏览器检索带有指定参数的URL,则ApateWeb会将流量转发到下一层。...Layer 2:重定向中间件 流量经Layer 1转发,会抵达Layer 2,而Layer 2则负责处理一系列重定向中间操作。

    25510

    域名怎样实现自动跳转网页_域名

    对自动转向技术(Auto-Redirecting)的合理应用包括:将用户转向指定浏览器的网页版本;当网站的域名变更或删除将人们转向新域名下,等等。...如下所示:   <meta http-equiv=”refresh” content=”10;   其中的“10”是告诉浏览器页面加载5秒钟自动跳转到url这个页面。   ...,所以不会出现当用户点击返回按钮返回至重定向页,然后该页自动跳转到用户本来想离开的那个页面的尴尬情形。   ...表单(FORM)自动转向法   搜索引擎的“爬行”程序是不会填写表单的,所以它们也不会注意提交表单,因而可以利用表单来实现自动转向(重定向)而不让搜索引擎察觉。   ...什么都没有的情况下,浏览器仍旧会为该URL安排请求至服务器。   用javascript脚本可让页面开始加载时即提交表单

    7.4K30

    如何处理Magento外贸网站被黑客入侵跳转和篡改

    有些客户找我们SINESAFE做网站安全服务之前,客户也找过建站的公司去清除后门,建站公司也将系统迁移升级到了最新的2.4.4版本,但后来发现问题并没有完全的解决,还是会反复的被篡改代码和用户的支付页面被劫持跳转...,问题的根源是代码里已经被黑客植入后门了,数据库也被留了木马病毒,这个时候不光是要升级magento最新版本,还得要把木马后门给彻底的清理掉,做好安全加固和防护,才能彻底的解决这个问题。...我们SINE安全处理了很多外贸客户使用magento被黑客入侵的安全问题,虽然国内Magento并不被广泛使用,但它在国外却十分流行。...以下就是我们SINE安全处理客户的magento被黑客攻击的过程记录:排查黑客攻击的问题时,很容易陷入只分析日志等细节的误区。其实,进行任何分析之前,我们都需要先做以下几件事情:第一,核实信息。...我们对黑客植入JS的代码进行了分析与解密,发现该JS代码是用来记录用户的信用卡信息,针对Magento支付相关页面(onepage|checkout|onestep|payment|transaction

    76260

    Spring MVC 框架学习(七)---- 后端接口小练习(计算器与登陆拦截)

    -- 登录页面页面容器, 为了和其他页面样式区分开, 使用不同的类名 -->   登陆成功显示的主页 index.html,只是作为一个展示页,要通过/index接口才能重定向这个页面...",msg); return map; }   如果登陆正常,前端接收到data.success==1,那么跳转到 /index 接口,判断session是否存在,如果存在那么重定向...首页、如果不存在 重定向 login 登录页 @RequestMapping("/index") public String index(@SessionAttribute(value...前端的非空提示:未输入用户名 未输入密码 用户名和密码都输入了,匹配是否成功 匹配成功,进入/index,经过session校验后进入 首页 如果没有登陆,获取不到session,直接点击主页,是会重定向

    96510

    页面跳转的两种方式(转发和重定向)区别及应用场景分析「建议收藏」

    转发和重定向区别详解 作为一名java web开发的程序员,使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。...,还可以重定向同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向其他站点的资源。...例如,当提交产品表单的时候,执行保存的方法将会被调用,并执行相应的动作;这在一个真实的应用程序中,很有可能将表单中的所有产品信息加入数据库中。...但是如果在提交表单,重新加载页面,执行保存的方法就很有可能再次被调用。...同样的产品信息就将可能再次被添加,为了避免这种情况,提交表单,你可以将用户重定向一个不同的页面,这样的话,这个网页任意重新加载都没有副作用; 但是,使用重定向不太方便的地方是,使用它无法将值轻松地传递给目标页面

    1.8K21

    TP入门第十天

    ,可以到时间,例如可以使用 2012-1-15,2013-1-15表示当前提交有效期2012-1-152013-1-15之间,也可以使用时间戳定义 ip_allow 验证IP是否允许,定义的验证规则表示允许的...’=>’md5’,  //令牌哈希验证规则 默认为MD5 ‘TOKEN_RESET’=>true,  //令牌验证出错是否重置令牌 默认为true 如果开启表单令牌验证功能,系统会自动带有表单的模板文件里面自动生成以...文件类型、文件大小、图片文件合法性等必须要严格验证 防止XSS攻击:过滤js脚本参考:http://www.0377joyous.com/archives/815.html 4、页面跳转和重定向 应用开发中...类的redirect方法可以实现页面重定向功能。...三个方法的区别和联系: redirect 重定向与 success/error 跳转的区别 redirect 是使用的 PHP header 重定向,而 success/error 是使用的 html

    1.5K50
    领券