期限付きのURLを作成する

[`tweetmeme` not found]
[`evernote` not found]
このエントリーをはてなブックマークに追加
はてなブックマーク - 期限付きのURLを作成する
Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`grow` not found]

$tmpuser = $this->Tmpuser->find('first', array('conditions' => array('cryptemail' => $this->params['pass']['0'], 'date_add(created,interval 24 hour) > now()')));

会員登録する際によくあるような24時間のみアクセス可能なURLを作成してみます。何がベストなのかわからないので試行錯誤してみました。

本登録用のユーザーテーブルとは別に仮登録用のユーザーテーブルを用意。仮登録用テーブルに登録日フィールドをつくっておいて、後で検証するというやり方。

MySQLならば

date_add(created, interval 24 hour) > now()

で24時間以内かどうかを判定できる。

ただこれだと、MySQL用の命令をハードコーディングすることになるのでDBエンジンが変わったときとかに面倒くさそう。

ではTTLフィールドを作成し、登録日時+24時間のUnixタイムスタンプで持たせてみる。これだと単純比較のみで期限切れ判定ができる。

登録時に

strtotime(‘+1 day’)

これをTTLフィールドに設定すると後々削除するときとかにも使えるので便利だ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA