HTML 4 网站 - 用户提交电子邮件地址以访问/下载文件


HTML 4 Website - User submits email address to access/download a file

我们有一个完全用HTML 4完成的古老网站,我的任务是想出一种方法让用户输入他们的电子邮件地址来访问/下载文件。

提交他们的电子邮件地址后,它可以将他们直接带到pdf文件,也可以重定向到带有文件链接的"谢谢"页面。

然后,我们将能够看到电子邮件地址列表以及谁下载了什么。

我被告知需要服务器端脚本语言。 老实说,我有编码的基本技能,我完全被这个任务难倒了。 任何帮助(请用简单的术语解释)将不胜感激。

谢谢!

您的解决方案将分为两部分,包括服务器端。首先,您需要一些服务器端代码来处理用户输入,以及一个数据库来存储从电子邮件地址到文件名的映射(尽管这可能只是位于服务器上的文本文件)。

服务器端脚本

当涉及到服务器端脚本语言时,你有很多选择,来自疯狂流行的PHP,虽然大多数网络托管公司都支持它,但充满了糟糕的设计问题,(在我看来)应该不惜一切代价避免。但是,它仍然完全适合您的目的。

规模的另一端是闪电般的快速节点.js,它允许您使用JavaScript对Web应用程序进行编程;这可以说是一种更愉快的方法,但是托管通常更昂贵,并且面向具有大量用户群的Web应用程序。

两者之间还有许多其他可能的解决方案,但为了论证起见,我们假设您使用 PHP。

数据库

数据库的作用只是存储电子邮件地址与其各自文件下载路径之间的关系。同样,有一大堆不同的解决方案,有些人可能会支持或反对它们。最不信任的解决方案之一(但不幸的是,MySQL得到了令人难以置信的广泛支持和紧密结合),为了论证起见,我们将再次使用它。

工作原理

您的 Web 应用程序将首先检查任何用户输入(即从 HTML 表单提交的用户的电子邮件地址)。然后:

  • 如果用户尚未提交任何内容,则输出一个带有 HTML 表单的页面,该页面可能如下所示:

    <form action="thispage.php" method="post">
      <input type="text" name="email" value="Enter your address here" />
      <input type="submit" value="Get my file!" />
    </form>
    

    当用户单击提交按钮时,输入的电子邮件地址将发送到thispage.php(或您决定调用此脚本的任何内容)。

  • 如果用户提交了电子邮件地址(即用户单击了上述表单中的按钮),那么我们将使用电子邮件地址查询数据库以找出用户的文件在哪里。关于如何做到这一点,有一百万零一个教程 - 这里有一个简单的PHP示例。

    从数据库中检索文件路径后,您可以将一些 HTML 输出为"谢谢!"页面,并带有指向 PDF 文件的链接,或者使用以下代码立即重定向它们,其中$URL是文件的 URL。

    <?php
       header('Location: ' . $URL);
    ?>
    
    还有

    另一种选择可以做到这一点 - 如果你想让PDF文件隐藏起来,不被未经授权的眼睛看到,你可以将其存储在服务器上的某个地方,外界无法访问,然后简单地将文件的内容输出到页面中。这可能如下所示,其中$path是服务器文件系统上 PDF 文件的路径:

    <?php
       header('Content-type: application/pdf');
       echo file_get_contents($path);
    ?>
    

我希望这能让你开始。如果您需要更多指导,那么您已经来对地方了!

这取决于您想要多少保护。如果要确保未输入电子邮件地址的人完全无法访问该文件,则可以使用.htaccess文件(在Apache中)阻止该文件。然后创建一个页面来检索要下载的文件(如果您之前设置的会话正常)。我认为从你所说的来看,这是没有必要的。另一种选择是用一个简单的表单制作一个页面,动作="somepage.php"。在该页面上,您将检索带有 $_GET 或 $_POST 的电子邮件(也就是说,如果您使用的是 PHP),然后将其保存在数据库或文本文件或其他东西中。(您甚至可以将其发送到您的电子邮件)然后:

1) 如果您使用的是我之前提到的保护,则将会话设置为 OK(您可以在文件开头使用 session_start() 执行此操作,然后包含 $_SESSION["gave_email"] = 'true';)。然后测试该变量以查看它是否为真。如果为 true,请将用户重定向到显示该文件的 PHP 页面。(像这样的检查的适当语法可能如下所示:

(if isset($_SESSION["gave_email"] && $_SESSION["gave_email"] == true)
//you show the content, then reset the $_SESSION variable to false

2)如果您不担心安全性,则只需将用户重定向到所需的页面(直接重定向到文件或包含下载链接的另一个页面)。要使用 PHP 转发,您可以使用 header('Location: page.php'),其中 page.php 是您想要的页面。整个事情看起来很简单,所以如果你有一些更具体的问题,请问它。

试试谷歌feedburner。它允许您进行有效的下载验证 当有人使用feedburner在您的网站上订阅时,则可以下载。源燃烧器订阅每 10 小时刷新一次。

http://feedburner.google.com/