我们有一个完全用HTML 4完成的古老网站,我的任务是让用户输入他们的电子邮件地址来访问/下载文件。
提交电子邮件地址后,可以直接将其发送到pdf文件,也可以重定向到“谢谢”页面,该页面包含该文件的链接。
然后我们就可以看到电子邮件地址列表&谁下载了什么。
我被告知需要服务器端脚本语言。说实话,我有编码的基本技能,我完全被这项任务所困扰。任何帮助(请简单解释)将不胜感激。
谢谢!
仁
答案 0 :(得分:2)
这取决于你想要多少保护。如果要确保文件对于未输入其电子邮件地址的用户完全无法访问,可以使用.htaccess文件(在Apache中)阻止该文件。然后创建一个页面来检索要下载的文件,如果您之前设置的会话没问题。我不认为你所说的是必要的。另一个选项是使用一个简单的表单创建一个页面,其中action =“somepage.php”。然后,在该页面上,您将使用$ _GET或$ _POST(即,如果您使用的是PHP)检索电子邮件,然后将其保存在数据库或文本文件或其他内容中。 (你甚至可以把它发送到你的电子邮箱)然后:
1)如果您正在使用我之前提到的保护,那么将会话设置为OK(您可以在文件开头使用session_start()执行此操作,然后包含$ _SESSION [“gave_email”] ='true' )。然后测试该变量以查看它是否为真。如果是,则将用户重定向到显示该文件的PHP页面。 (像这样的检查的适当语法可能如下所示:
(if isset($_SESSION["gave_email"] && $_SESSION["gave_email"] == true)
//you show the content, then reset the $_SESSION variable to false
2)如果您不担心安全性,只需将用户重定向到您想要的页面(直接转到文件或包含下载链接的其他页面)。 要使用PHP转发,您可以使用标题('Location:page.php'),其中page.php是您想要的页面。整个事情看起来很简单,所以如果你有一些更具体的问题,请问它。
答案 1 :(得分:2)
您的解决方案将分为两部分,服务器端。首先,您需要一些服务器端代码来处理用户输入,以及一个数据库来存储从电子邮件地址到文件名的映射(尽管这可能只是位于服务器上的文本文件)。
在服务器端脚本语言方面,你有一个充满选择的世界,来自广受欢迎的PHP,虽然在大多数网络托管公司的支持下,却充满了糟糕的设计问题。应该不惜一切代价避免我的想法。但是,它仍然完全足以满足您的目的。
另一方面是闪电般快速node.js,它允许您使用JavaScript对Web应用程序进行编程;这可以说是一种更愉快的方式,但托管通常更昂贵,并且适用于具有大量用户群的Web应用程序。
中间还有许多其他可能的解决方案,但为了论证,我们假设您使用PHP。
数据库的作用仅仅是存储电子邮件地址与其各自文件下载路径之间的关系。同样,有许多不同的解决方案,有些可能会争论或反对它们。最不可信的解决方案之一(但遗憾的是,令人难以置信的广泛支持并与PHP紧密结合)是MySQL,为了论证,我们将使用它。
您的网络应用程序首先会检查是否有任何用户输入(即用户从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 here示例。
从数据库中检索文件路径后,您可以输出一些HTML作为“谢谢!”页面,带有PDF文件的链接,或者只是使用以下代码立即重定向它们,其中$URL
是文件的URL。
<?php
header('Location: ' . $URL);
?>
还有其他替代方法 - 如果你想保护PDF文件不被未经授权的眼睛,你可以将它存储在服务器上的某个地方,外面的世界无法访问,然后只需输出内容将文件放入页面。这可能类似于以下内容,其中$path
是服务器文件系统上PDF文件的路径:
<?php
header('Content-type: application/pdf');
echo file_get_contents($path);
?>
我希望这能让你开始。如果您需要更多指导,那么您已经在正确的地方提问!
答案 2 :(得分:1)
尝试google feedburner。它允许您进行有效的下载验证当有人使用feedburner在您的网站上订阅时,可以下载。 feedburner订阅每10小时刷新一次。