我有一个PHP项目本质上是一个公司的订单处理网站。公司中的每个用户都可以访问该网站,并向应用程序提供某些凭据,以控制对页面和功能的访问。
现在我有一个允许访客访问单个页面的请求。此请求的复杂性在于每次访客都会有所不同,页面也会不同。基本上,它是一个门户网站,允许客户在系统内没有帐户,因为此网站上没有实时订购,以便能够访问和验证订单和发货信息。
我想要实现这一点是将数据库表设置为来宾关系表,该表将用于存储UID,MD5哈希键和记录所引用的目标页面。还包括访问计数器和到期日期。当用户收到电子邮件时,他们会在电子邮件中提供一个链接,例如http://website.com/verify/?HASH-KEY。
当点击此链接时,我希望验证index.php页面接收HASH,在数据库中验证它并在该位置的数据库中显示页面引用,而不是重定向到应用程序。这将允许访客访问单个页面,而无需公开网站结构或已经设置的用户授权的返工。
答案 0 :(得分:7)
1
。我是否以正确的方式接近这个解决方案?
是的,或多或少。
一些指示:
2
。如何获取一页的内容并将其显示在另一页中?
如果您希望人们“访问并验证订单和发货信息”,您可能应该专门为其创建一个页面,而不是尝试将通常安全的页面传递给不安全的客户。即,“发货确认页面”根据提供的哈希键入的数据填充详细信息。
答案 1 :(得分:2)
我正试图尽我所能。
似乎你应该使用你的哈希方法,只需要一个独立的页面来生成你想要的内容,完全独立于系统的其他部分。只需在哈希URL中放入足够的数据即可确定所需内容。
要做的其他事情是在哈希字符串URL中使用时间戳,并将该时间戳作为生成哈希值的随机位的一部分。这将允许您在某个点之后使URL基本上“过期”。
示例:url.com/in/123456789865/hash-here
您可以将此示例中的“123456789865”与当前服务器时间进行比较,并确定其是否已过期。当然,您需要将“123456789865”作为哈希加密的一部分来进行验证
答案 2 :(得分:0)
如果我理解正确(而且我认为我这样做),那么我认为你正确地接近了这一点。
要包含其他网页的内容,通常使用include
。
include "/path/to/page.php";