PHP hack - 提交表单时打开两个网站

问题描述 投票:0回答:4

有人在我们的网站上填写表格并单击“提交”后,他/她将被定向到登陆页面。我想更改该流程,以便在提交时 (1) URL1 作为新窗口打开; (2) 用户从当前表单页面重定向到 URL2。

你能帮忙吗?

当前代码片段 -

if(! isset($RedirectOnSuccess))
    $RedirectOnSuccess = 'oldURL';

我是一名技术新手,因此需要您的帮助来将其拼凑起来。我正在使用 MODx,网页本身使用以下内容调用 php 脚本 - [!FORM_SNIPPET? &RedirectOnSuccess=旧网址 !]

php forms url modx
4个回答

2
投票

这可能取决于弹出窗口的上下文,但您可能会考虑使用侵入性较小且易于拦截广告的内容,而不是使用传统的弹出窗口,例如 lightbox 或页面内其他基于 ajax 的显示工具。您可以通过提交按钮上的单击事件触发灯箱,用它显示您的消息,然后在关闭或确认时提交表单。

避免查看表单结果页面依赖于 JavaScript 的解决方案,因为某些(不常见)用户可能会禁用它。如果按照上面的方式实现,这些用户会错过您的弹出窗口,但表单仍然会通过。

您可以使用 jQuery 来实现此功能,而无需修改 MODx 用于生成表单的 php 代码,而是通过将 javascript 放入 xhtml 标头中,将单击事件附加到表单的提交按钮。例如:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script src="/colorbox/jquery.colorbox.js"></script>
    <script type="javascript">
    $("#FormID.input[type=submit]").click(function(e) {
      /* prevent form from submitting */
      e.preventDefault();
      e.stopPropagation();

      /* on colorbox close, submit form */
      $(document).bind('cbox_close', function(){
        e.submit(); // submit the form on close
      });

      /* open the colorbox */
      .colorbox({href:"http://example.com/url1"});
    });
    </script>

我在这里使用了ColorBox,但同样的想法应该适用于其他灯箱替代品。我没有在浏览器中对此进行测试,因此请务必根据需要进行测试和调整。


1
投票

考虑到弹出窗口拦截器的问题,您最好的选择是在表单上传时使用 HTML 定位新窗口。

<form target="_blank">

然后使用 JavaScript(可能通过弹出窗口中的

opener.location.href
),您可以将主窗口重定向到另一个 URL。


-3
投票

https://www.somewhereinblog.net

破解网站。百万美元的生意可以从这个网站找到

© www.soinside.com 2019 - 2024. All rights reserved.