我有网站,所有用户都可以在下载页面下载任何文件。只有在我的网站上有账号的用户才能下载;访客不能看到下载页面,直到登录或注册在我的网站。我现在想做一些改变;我想只是下载任何文件从下载页面的活跃用户谁拥有超过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
}
?>
这是我的下载代码。
这是一个宽泛的问题,没有关于您正在使用的框架或数据库的信息。我假设您正在使用MySQL。我还假设您有一个名为users
的表,其id | name | email |等我还假设您有另一个名为topics的表,其中包含:Id | userid | title | 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.";
}
你可以把这个信息修改成任何你想要的东西,这样用户就知道为什么他们不能访问下载。
好运