如何正确部署“卫星”表格

时间:2011-03-30 18:18:23

标签: php forms affiliates

根据我的建议不要这样做,我必须建立一个表格,我们可以将其交给我们的附属公司并让他们放在他们的网站上 - 一旦它离开我,我无法控制任何事情,我希望这个社区的专业知识可以为我提供另一种方法来解决这个问题。我需要使用元素控件编写一个没有样式的表单,联盟会员(希望)不会改变。然后,联盟会员可以在他们的网站上设置表单,然后根据需要对其进行样式设置并将其提交到我的网站上的PHP脚本,该脚本将A)提交到我们的数据库并且B)将一些信息发送给第三方。有什么我可以用PHP做的 - 不是专家,但我通常可以弄明白。 desired flow

附属公司拥有不同程度的技术知识,其中大部分属于低端技术,并且没有使用通用技术(我们使用PHP)。一些潜在的问题

  1. 如果关联公司更改(无论出于何种原因)输入ID和/或名称将不会提交到我们的数据库中
  2. 由于技能水平/编程语言差异而由我提供的客户端验证
  3. 我无法控制联盟网站上的任何内容,我猜这会让我们的数据库容易受到攻击?
  4. 主要是用户体验,如果他们提交的表单无效且我们的服务器端验证抓住了它,请将它们发回联盟网页或我们网站上的错误消息。由于技能水平/技术问题存在,我不能指望联盟会员设置卷曲脚本并处理其网站上的表单提交脚本的错误消息,因此我必须将它们发送到我们网站上的错误页面。然后联盟会失去领先优势。
  5. 这些是我提出的主要问题,我确定还有其他问题。因此,我需要将一些东西交给附属公司,然后将其插入页面并使其正常工作。有没有其他人必须这样做?有没有更好的方法来处理这个?可能是iFrame?由于跨域安全问题,我从来没有太多使用它们。我感谢您提供的任何建议和指导。如果问题不够彻底或者经过深思熟虑,我会道歉。我会根据要求更新它。谢谢!

3 个答案:

答案 0 :(得分:1)

如果没有将表单代码提供给您的关联公司,您只需给他们javascript - 代码本身,或者甚至更好的缩小的javascript文件 - 将在他们的网站上创建表单。这样,您可以包括客户端验证并指定表单元素的布局,包括表单字段的ID?所有分支机构需要做的是在所需位置添加javascript。你可以给他们一些关于javascript的替代方案;例如,一个用于显示表单,一个用于弹出对话框等。如果表单的操作是您站点上的PHP脚本,我认为这不会导致您出现跨站点脚本问题。缩小脚本可以降低关联公司“修复”它的风险。如果需要,您甚至可以给它们一个单独的CSS文件来设置表单中的元素的样式,但这会增加它们的复杂性。

答案 1 :(得分:1)

您可以为每个客户端提供要加载的iframe代码。这个iframe会加载类似

的内容

您可以使用AFFILIATE_ID以特定方式设置表单样式,也可以加载他们为您提供的样式表。

答案 2 :(得分:1)

至于验证,它与任何其他形式没有什么不同。客户端验证只是建议性的。无论如何,您必须确保表单处理脚本中的输入结构和格式。

然后你有两个选项来处理错误。 (1)如果业务要求不禁止它,我只会让它成为一个成熟的表单处理程序。如果收到的$ _POST字段有错误,请再次打印自己漂亮的表单版本。在那里包含错误消息,并添加Clippy(一些Javascript帮助程序)以帮助用户正确填写表单。

如果不允许在您的结尾显示表单的自定义版本,则(2)只打印错误消息。让它显示几秒钟,并提供自动重定向回到合作伙伴网站上的原始表单。通常只提供:

<a href="javascript:history.back()">back to form on partner site</a>

这样就会详细解释错误,但用户仍然可以返回上一个表单(所有内容仍然填写)。