我会尽量简短地说明我要完成的事情:
假设我正在通过短信发送消息。通过电子邮件发送给5000个联系人(但我希望这个版本只有10或1.000.000,无论音量如何)。 在这条消息中,我正在推广一个类似于在某个奇特的地方举行的晚宴的活动。收到此消息的所有人都会被邀请。 每条消息都包含一个URL,链接到专门用于该事件的登录页面。这个页面是响应式的,它打开了一个很好的图片+一些文本,基本信息和一个PHP表格来回答邀请。
此表单包含几个字段。在这个例子中,让我们说:
你来参加派对吗? (答案可供选择:“是”或“不,谢谢”)。 你会陪伴吗? (回答选择:“只是我”或“+1”,“+ 2”)。 还有什么你想告诉我们的吗? (免费打字领域)。 [提交]
发送的消息中的每个URL链接实际上都是UNIQUE重定向,每个重定向都属于5000个联系人中的1个。 每个联系人都在SMS和电子邮件上收到了自己的链接。 所有这一切都意味着在我用来发送消息的数据库中,每个联系人都被归为重定向/短URL。 通过这种方式,我很清楚谁甚至只是打开了登陆页面,而无需要求开启者填写任何信息。 我只知道,例如:
Mr. Skywalker is http://website.com/dinnerparty/01
Ms. Organa is http://website.com/dinnerparty/02
Mr. Solo is http://website.com/dinnerparty/1138
Mr. Calrissian is http://website.com/dinnerparty/4469
And they all redirect to http://website.com/dinnerparty/
到目前为止很好,对吧?! 现在这里是棘手的部分......
一旦他提交了,如果他刷新页面,他就不能再提交表格了。相反,他看到一条消息,如“你的答案已收到,谢谢!” 该页面对于联系人列表中的每个人来说基本相同,但由于它是HIS链接,因此显示的是HIS表单。
我知道这可以做到,因为我之前遇到过这种过程。我只是不知道如何重现它!我不是一个程序员,只是一个试图“自己”学习的菜鸟。
到目前为止,我认为我必须以某种方式为5000个表单中的每个表单提供ID和ID,我只是猜测“此URL =此表单”的信息将包含在URL中,这看起来像'{ {3}}“
这一切都响铃吗?我到目前为止的询问(使用关键字“PHP”和“URL”)只是教会了我如何使用GET数组将信息从联系表单转移到另一个页面的内容,但这不是我需要的。
所以,如果你有任何线索,任何有关如何实现这一点的线索,我将不胜感激!
感谢阅读,我们将非常感谢您的帮助!
PS:抱歉英语不好;)
答案 0 :(得分:0)
首先,不要使用增量ID。这很容易被称为序号攻击。请改用UUID。否则,访客可以输入下一个/上一个/随机ID,并可能为另一个访客提供RSVP。这对你来说是个坏消息,但是对于攻击者来说非常好(他们会为你做这件事......这可能会让受害者大吃一些,例如购买不必要的晚餐)。有关一些很好的解释,请参阅https://www.youtube.com/watch?v=CgJudU_jlZ8和https://www.youtube.com/watch?v=gocwRvLhDf8。
其次,您应该在URL中维护UUID,例如http://website.com/guest/123e4567-e89b-12d3-a456-426655440000
- 使用脚本或类似.htaccess
的内容,您可以拾取UUID并将其传递给单个脚本。例如:
RewriteEngine On
RewriteRule ^/guest/(.*)$ /my-form.php?id=$1 [L]
从那里,在你的my-form.php中,你可以检查$_GET['id']
是否存在,然后验证它(它是否存在?先前是否已提交?等)。如果验证,则可以照常显示表单并发布到自己(仍然在URL中使用UUID)。在提交时,您再次验证ID,并处理提交。
然后,在后续页面加载时,您可以拒绝再次提交表单...或者相反,允许用户编辑他们的响应。也许他们不再是+2 ......但是用例取决于你,有些RSVP在X日期之后不允许编辑...所以请记住这一点。 / p>
-
现在,要讨论大量短信/电子邮件服务,您可能希望拥有一个用户数据库。为了发送唯一的链接,您只需要做一些所谓的"邮件合并" (或合并标签等)...基本上,您可以在简报/消息中使用URL:http://website.com/guest/[guest_id]
,并且mailmerge将使用您数据库中的UUID替换[guest_id]
。
那里有很多邮件/短信群发邮件服务,所以我不需要列出任何邮件/短信群发邮件服务。选择一个具有API并符合您要求的产品。
希望这会有所帮助。祝你好运:)