は、私はあなたが一般的な方法(クッキー、IP ...)と実用的でないと訪問者の帯域幅ごとに追跡しようとしている一方で、あなたのサイトに登録するようにユーザーを強制的に避けるようにしようとしていると思います。だから、私の意見では、もちろん、多くの改善された解決策がありますが、名前、パスワード、電子メールなどの簡単な登録フォームを作成することです。ログインしてファイルをダウンロードしようとすると、次の手順でリクエストを処理します。
1)ファイル名.pdfのユーザー要求(可用性とサイズを確認する(重要))。
2)チェックユーザーの帯域幅:
$query = sql_query("SELECT Bandwidth, LastDownload FROM Users, Stats WHERE USER_ID=5");
$result = sql_fetch($query);
if ($result['Bandwidth'] < 50M)
showDownloadLink();
else if($result['LastDownload'] - currentTime() !=0)
echo "please wait to the next 24h";
データベースは次のようにする必要があります: ユーザー:
ID_U int(key, auto increment), Name varchar(25), email varchar(255), password varchar(32), Bandwith float
統計:
ID_S int(key, auto increment), LastDownload time, ID_U integer
注: たびに、ユーザファイルをダウンロードする適切なユーザーの帯域幅行を更新するので、後で特定のユーザーがその制限に達するかどうかを確認できます。 24時間ごとにリセットする必要があります。
これは一般的な解決策であり、カウンタの帯域幅を24Hごとにリセットする必要があるように、多くの人はチェックする必要があると考えています。
感謝を格納するテーブルを作成します。私はユーザーシステムを持っていないし、サイトのスコープ/サイズをいくらか超えているようだが、私はそれを念頭に置くだろう。私はセッション/ IPの制限が(Digital Precisionの警告にもかかわらず)残っていると思います。擬似コードの面で誰かが私にいくつかのアイデアを与えることができますか?私はdownload.phpを考えていますか?file = 'foo.pdf' download.phpはIPをチェックし、SESSIONを再開し、ファイルのサイズを制限と比較してダウンロードを許可/拒否します。しかし、1日後にどのようにセッションをクリアするのですか?残りは賢明ですか? – rwb