1

こんにちは皆さん、私はこれらの状況でアドバイスが必要です:

たとえば、ユーザーが案内広告を投稿できる無料の案内状投稿 Web サイトがあります。広告は Web サイトに最大 30 日間掲載され、その後 31 日目にデータベースと画像から自動的に削除されます。サーバー上で..問題は次のとおりです。

$db_ad_tbl('id','user_id','title','description',timestamp);

これを行うための正しいアプローチは何ですか? これと同じ状況をカバーするチュートリアル/リンクを提案できる人はいますか?

4

2 に答える 2

1

Barmar が指摘したように、このタスクには cronjob を追加する必要があります。簡単な php スクリプトを作成し、次のようにして crontab に追加できます。

1 0 * * * php -f /path/to/file/clean.php

これは、php ファイルが毎日午前 0 時に実行されることを意味します。

いくつかのメモ:

  1. ファイルは Web フォルダにあってはなりません
  2. いくつかのテストを行い、電子メールでエラーを報告することをお勧めします (db に接続できないなど)。
  3. これらをさらに構築する場合は、サーバーを切り替える場合 (またはサーバーが停止する場合) に備えて、それらのリストをどこかに保管しておく必要があります。
  4. 構成ファイルを使用する場合 (例: db 接続の詳細を保存するため)、cronjob が動作するユーザーがアクセスできることを確認する必要があります。

ほとんどのホスティング プラットフォームでは、crontab の編集が可能であり、Web サーバーを実行しているのと同じユーザーで実行できるため、問題にはなりません。

これには、cron ジョブを作成する以外に良い解決策はありません。これはもちろん、データベースからデータを取得するたびにタイムスタンプを確認しない場合です。有効期限データよりも大きい場合は削除できます (DELETE FROM my_table WHERE timestamp>[Expiry Timestamp] )。カウントを試行するたびにタイムスタンプを含める必要があり、期限切れのリソースがデータベースから要求されない場合、すべてを永久に保存するリスクがあるため、これはもちろん危険です。

于 2013-08-30T06:37:18.720 に答える