【发布时间】:2012-05-18 18:56:53
【问题描述】:
我在做什么:
我基本上需要创建一个由用 PHP 编写的登录页面保护的网站,一旦登录,您就会有一个读取整数的搜索栏,并且数据被发送到一个 PHP 脚本,该脚本检索一个以数字为名称的图像.
(我将在此服务器上存储几千张图片以供搜索 - 库存图片)
-
我需要什么帮助:
根据我的研究,我了解到您“不”使用 MySQL 等数据库来存储实际图像,因为速度和效率低下。如果您不将其存储在数据库中,而是按照建议将其保留在服务器的文件系统中,如果有人在地址栏中键入直接 URL,它不会将它们带到我服务器上的文件中吗?
您如何防止这种情况发生。如果没有成功通过登录页面,我不希望服务器上的任何文件都可以查看。
感谢您的帮助,任何见解或建议将不胜感激。这对我来说很重要,因为将来会添加更复杂的信息。
【问题讨论】:
-
您可以拥有一个无法通过 HTTP 访问的目录,您可以使用 php 脚本检查用户是否已登录,如果是,则从指定目录读取文件并输出。
-
我已经阅读了将文件保留在“public_html”文件夹之外的内容。这会使它完全无法从http访问吗?那么我的 php 脚本如何访问这些文件呢?
-
public_html通常是使用 Apache 和 cPanel 时提供文件的目录。这意味着当您键入http://yoursite.com时,数据将从/var/www/username/public_html中提取。这也意味着无论您在 URL 中键入什么,/var/www/username都不可访问。这也意味着您在此处创建的目录(例如/var/www/username/files)也将无法访问。在您的 PHP 脚本中,您可以使用file_get_contents('/var/www/username/files/imagename.extension);` 之类的方式访问它。 -
php 可以访问服务器上的任何文件(取决于权限)它不受网络根目录的限制
-
好的,谢谢你们,现在我知道如何存储我的文件了。我应该使用数据库来存储文件路径,还是应该完全忽略数据库?对路径进行硬编码,并为输入(图像的名称)提供一个变量保存位置?