0

所以这是我的问题:

我被要求在名为“myshopingonline”的 CMS 上创建一个联系表格。该网站的前开发人员已经添加了一个 html 联系表单,通过他自己的网站(其他域名,网站 A 将 POST 数据发送到网站 B 的 email.php 脚本)的 php 脚本 (email.php) 提交表单。

我根本不知道这个 myshopingonline CMS,所以我想到的第一件事是使用插件而不是对表单进行编码。显然,没有插件。第二种解决方案:因为我无法在 CMS 仪表板上编写任何 PHP 代码:创建一个我将与我的 ftp 客户端一起添加的 php 文件。问题是我没有 ftp 访问权限(当我拥有 ftp 访问权限时,我可能会选择这个解决方案)。

要求我制作该 html 表单的人告诉我该表单正在向前开发人员发送电子邮件。所以我很好奇:将 POST 数据从域 A 发送到域 B 和域 B 脚本发送电子邮件而不是 A 做它(有点像服务不是?)。

所以我试图在我的一个域上创建一个子域,只是为了尝试这种应该有效的方法。所以,经典的,域 B 脚本的开头是:

    if (!isset($_POST['submit'])){
        echo 'ERROR';
...

来自域 A 的表单以 :

 <input name="submit" value="submit" type="submit" />

毫不奇怪:我收到错误消息(试图查看表单在同一域上时是否正常工作并且工作正常......)。所以我的问题是:是否有可能做到这一点?使其工作意味着域 B 将“接受”来自 A 的 POST 数据并使用这些数据执行脚本。

我想这相当于构建服务或 API?

在此先感谢您的帮助!

4

1 回答 1

1

有可能,为什么不呢。

考虑这个位于域 A 上的示例(更新了代码并添加了 method="post"):

<html>
<body>
<form action="http://domainB.example.com/email.php" method="post">
<input name="data" value="test data" type="text" />
<input name="submit" value="submit" type="submit" />
</form>
</body>
</html>

该表单将托管在域 A 上,并将在域 B 上执行 php 脚本。现在,考虑您在域 B 上有这个 php 脚本:

<?php
  if (!isset($_POST['submit'])){
    echo 'ERROR';
  else
    echo 'POST request received';
?>

现在,尝试访问域 A 上的页面,单击提交按钮并观察会发生什么(还要注意 Web 浏览器中的地址,在您按下“提交”按钮后,该地址也会发生变化)。

于 2013-06-08T09:11:52.647 回答