0

私は、ユーザーがアカウントを作成するために少額の料金を支払う必要があるWebサイトに取り組んでいます。アカウントを持っていると、一定期間、たとえば6か月間Webサイトのすべての機能にアクセスできるようになります。

現在、私はphpを使用してmysqlデータベースを使用してユーザーアカウントを作成し、ユーザーアカウント情報を保存しています。ユーザーは、無制限の時間、無料で自由にログイン/ログアウトできます。

私の質問は、作成されたすべてのアカウントに時間制限を設定し、有効期限が切れたら、ユーザーにメンバーシップを更新するオプションを与えるにはどうすればよいですか?

4

4 に答える 4

1

ログインを許可する前に、ユーザーテーブルに期限切れの列を追加して現在の日付と比較してみませんか?この日付が期限切れの場合は、支払いページにリダイレクトしてメンバーシップを更新してください。

この日付を使用して、アクティブなメンバーの「残りの日数」を表示し、過去数日ほどで支払いリンクの表示を開始することもできます。

私は常に、日付を格納するための列タイプとしてDATETIMEを使用してきました。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.htmlでMySQLの日付と時刻の関数を確認してください。例:次のクエリは、date_col値を持つすべての行を選択します過去30日以内から:

SELECT something FROM tbl_name
    -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

あなたの場合に必要なのは、メンバーシップを非アクティブにするための次のクエリです-

$sql = SELECT * FROM users WHERE
DATEDIFF(expiration_date, CURDATE()) days_left
HAVING days_left < 0 

while($row=.....) {
//Update query to set user_status='expired' or whatever 
}
于 2012-06-18T16:01:35.333 に答える
1

MySQLを使用している場合は非常に簡単です。ユーザーの有効期限を含む列を登録テーブルに追加するだけです。

このような:

| id | username | expiration_date |
| 1  | test     | 1029384756      |

次に、あなたがする必要があるのは、time()(今日)が相対ユーザーのexpiration_date以上であるかどうかをチェックすることです。もしそうなら、それは期限切れです。

有効期限にタイムスタンプ形式を使用しましたが、他の形式を使用できます...

于 2012-06-18T16:01:50.990 に答える
0

アカウントの作成日をユーザー名と一緒にMySQLDBに保存します。ログイン時に確認し、6ヶ月経過したら有効期限が切れます。有効期限が切れたら、ユーザーを「メンバーシップの更新」ページにリダイレクトします。

于 2012-06-18T16:02:24.267 に答える
0

余分な列を追加します。expiry_timeユーザー情報とともに、最初にサインアップ時にその値を設定します。

アカウントは次のときに期限切れになりcurrent time >= Expiry_timeます。また、ユーザーがメンバーシップを更新したい場合は、の値を再度設定しexpiry_timeます。

于 2012-06-18T16:09:54.440 に答える