临时下载页面还是限制静态下载页面取决于用户如何到达该页面?

时间:2013-09-25 作者:Ryan Joseph Kita

我基本上想知道是否有可能创建一个系统,当用户想要下载某个内容时,它会创建一个临时下载页面(不是下载链接,我想要静态的热链接文件,而不是直接上传到我的服务器上),页面会在一段时间后自行删除。或者,我的另一个解决方案可能是根据用户如何到达页面的url限制页面或页面内容的可见性。我问这个问题的原因是因为我使用adf。只允许客人下载东西,会员无法获得adf。这些页面直接进入下载。注册用户下载页面被阻止来宾访问,但如果任何来宾在adf之后共享来宾下载链接的页面url。ly,任何人都可以绕过adf。然后通过直接链接直接进入下载页面。如果他们没有通过adf访问页面,是否有办法让页面引导他们关闭。或者创建一个临时下载页面,该页面只会停留几分钟,然后消失,并不断更改url,这样人们就不能提供直接的来宾下载链接了?如果有任何方法可以做到这一点,我将不胜感激:)

1 个回复
SO网友:Twifty

对于您的第一个问题“检测它们来自哪里”,只需检查$_SERVER[\'HTTP_REFERER\'] 为您的预期网址。

对于第二个“创建短期页面”,您的答案在于set_transient() 方法您可以执行以下操作:

function create_page() {
    if ( get_current_user_id() )
        return "<html>...</html>";
    return false;
}
function get_page( $unique_id ) {
    // Get an earlier created page if it\'s still alive
    $page = get_transient( $unique_id );
    if ( !$page ) {
        // Try creating a new page
        $page = create_page();
        if ( !$page )
            return false;
        // Cache the page and allow it to live for 1 hour
        set_transient( $unique_id, $page, HOUR_IN_SECONDS );
    }
    // Return the page
    return $page;
}
请注意,代码示例需要根据您的需要进行修改。基本上,它会创建一个页面或页面的插入,并将其保存到数据库中,生存期为1小时。您可以通过添加$unique_id 给用户metadata. 这样,您就可以确保只有一个用户可以在页面的生命周期内访问该页面。

结束

相关推荐

Private Posts/Pages & Search

我有一个网站,那里有一个私人页面和一个私人帖子。当以管理员身份登录时,我可以查看这两个,它们甚至会出现在搜索中。然而,当以编辑身份登录时,我仍然可以看到这些帖子,但它们不会出现在搜索中。我觉得这有点奇怪,我想知道是否有人经历过这种情况,或者知道如何在以编辑身份登录时在搜索中显示私人页面和帖子?