所以这是我的问题:
我被要求在名为“myshopingonline”的CMS上创建联系表单。这个网站的前开发者已经添加了一个html联系表格,从他自己的网站(其他网站名称,网站A发送POST数据到网站B的email.php脚本)提交PHP脚本(email.php)上的表格。
我根本不知道这个myshopingonline CMS,所以我认为首先使用的是插入而不是编码表单。好吧,没有插件。第二个解决方案:因为我无法在CMS仪表板上编写任何PHP代码:创建一个我将使用我的ftp客户端添加的php文件。问题是我没有ftp访问权限(当我有ftp访问权限时,我可能会选择这个解决方案)。
要求我制作该html表单的人告诉我该表单正在向前开发人员发送电子邮件。所以我很好奇:从域A发送POST数据到域B和域B脚本发送电子邮件而不是A做它(有点像服务没有?)。
所以我尝试在我的一个域上创建一个子域只是为了尝试这个应该工作的方法。所以,经典的,B域脚本的开头是:
if (!isset($_POST['submit'])){
echo 'ERROR';
...
域A的表单以:
结尾 <input name="submit" value="submit" type="submit" />
并不出意外:我收到了ERROR消息(试图查看表单是否正常工作,当它在同一个域上并且工作正常...)。所以我的问题是:是否有可能做到这一点?使其工作意味着域B将从A“接受”POST数据并使用这些数据来执行脚本。
我想这相当于构建服务或API?
提前感谢您的帮助!
答案 0 :(得分:1)
有可能,为什么不呢。
考虑这个例子,位于域A(更新代码并添加方法=“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浏览器中的地址,在按下“提交”按钮后,该地址也会发生变化)。