阻止用户下载

时间:2015-10-07 18:58:05

标签: php file download

我有网站,所有用户都可以在下载页面下载任何文件。只有在我的网站上有帐户的用户才能下载;访客在登录或在我的网站上注册之前无法看到下载页面。 我现在要做一些改变;我想从下载页面下载任何文件,以便有超过10个主题的活跃用户,任何少于10个主题的用户都无法下载任何文件。 我怎样才能做到这一点?

下载

<?php 
if(!$allcategories)
{
    echo 'There are no downloads available!';
    return;
}

foreach($allcategories as $category)
{
?>
<p><h2><strong><?php echo $category->name?></strong></h2></p>
<ul>

<?php   
    # This loops through every download available in the category
    $alldownloads = DownloadData::GetDownloads($category->id);

    if(!$alldownloads)
    {
        echo 'There are no downloads under this category';
        $alldownloads = array();
    }

    foreach($alldownloads as $download)
    {
?>
    <li>
        <a href="<?php echo url('/downloads/dl/'.$download->id);?>">
            <?php echo $download->name?></a><br />
          <?php echo $download->description?><br />
          <em>Downloaded <?php echo $download->hits?> times</em></li>
<?php
    }
?><br />
</ul>
    <?php
}
?>

这是我的下载代码。

1 个答案:

答案 0 :(得分:0)

这是一个广泛的问题,没有您正在使用的框架或数据库的信息。 我假设你正在使用MySQL。 我还假设你有一个名为users的表,其中包含id |名字|电子邮件|等等 我还假设您有另一个名为topic的表: id | userid |标题| desc |等等 好的,我还假设当用户登录到您的站点时,您正在设置一个名为$ _SESSION [“userid”]的会话;

现在在下载页面上,在开头运行查询(确保在以下情况之前连接到db):

$userid = $_SESSION["userid"];
$result = mysql_query("SELECT count(*) from `topics` where `userid` = '$userid') or die(mysql_error());
$topicCount = mysql_result($result,0);
if($topicCount < 10){
echo "You have $topicCount topics so far. You need a minimum of 10 to get access to downloads.";
}

您可以将该消息更改为您想要的任何内容,以便用户知道他们无法访问下载内容的原因。

祝你好运