>oldユーザ登録(仮登録・メール・本登録)ここ最近は、メールアドレスだけでなく、SNSのアカウントと連携してユーザ登録することもできるWebサービスが増えてきましたね。ユーザは割合としてどちらを選んでるのか気になるところですが。私はできるだけ連携は避けて、棄アドレスで登録することにしてます。今回はメールアドレスでのユーザ登録機能。仕様は以下にしました。(/thanks)」へ遷移する。この時点では仮登録とし、ユーザに本登録用のリンクをメールで送付する。**メール送信機能は、qdmailを使用する。ユーザはメール送付されたリンクをクリックして「本登録完了(activate)」とする。usersテーブルstatusを用意し、デフォルトを1としています。"1"を仮登録状態でログイン不可、"0"を本登録としログイン可能にします。その制御は、userScopeが使えそうです。$this->Qdmail->send();}signupアクション登録データの(バリデーション+)保存を行い、メール送信を行います。送信データ内に含める本登録用のリンク(activate_url)を作成します。activate_urlは以下のフォーマットとします。http://[domain]/users/activate/「ユーザID」/「ハッシュ値」env('SERVER_NAME'):ドメイン名が入ります。作成されない場合はSERVER_NAMEの設定を確認する必要があります。ユーザID:再取得したUserデータのIDハッシュ値:getActivationHash()で該当ユーザ用のハッシュ値を生成します。thanksアクションページの表示のみ行います。activateアクションidの存在確認を行い、getActivationHashを再度呼び出し第2引数のハッシュ値の検証を行います。statusは、テーブル作成時にデフォルトで1を設定しています。(1:「仮登録済み」/0:「本登録済み」。}}getActivationHashactivateの認証用ハッシュキーを作成します。以下の2つを繋ぎ合わせハッシュ化し、先頭16バイトを抽出しています。$this->field('modified')また、リンクに時限を設ける場合は、時間locatime()などを付与して、activate時に24時間以上経過している場合は無効にするなどの処理をするという方法もありかもしれません。confirmPassword設定パスワードと確認用パスワードの合致を確認するためのメソッドです。false)[ソース:/cake/libs/security.php]与えられた文字列をハッシュ化します。$Auth->passwordと同じ(Security::hashを呼出)です。モデル内では、Authコンポーネントが使えないため、こちらを使用できます。(指定なしの場合は、sha1)$salt:core.php内のSecurity.saltを付与してハッシュ化するか否か。app/views/users/thanks.ctp「登録ありがとうございます。app/views/users/activate.ctp「リンクが無効です。複数データベースの追加と切替CakePHPで複数のデータベースに切替を行うということがあると思います。今回、CakePHPからWordpressのデータベースへの接続を行う機会があったので設定を試して複数ファイルアップロードCakePHPで複数ファイルのアップロードについて調べてみました。いっても普通のPHPのコードと同じではありますが、postするフィールド名に[]を付与して配列にします。更新処理でページ遷移を伴う場合、ページ全体をレスポンスするのに対して、Ajax処理ではページの一部のレスポンスが可能となるためサーバからの通信量を抑えることが可能となります。$this->Html-TextヘルパーTextヘルパーには、テキスト処理に関する便利な機能があります。リンク付与やテキストの抜粋・ハイライトや切り取り処理など。validationErrorsCakePHP試験中に気付いたことがあって、メモです。今まで、save時にバリデーションエラーメッセージををログに出力しログローテーションCakePHP1.3では標準ではログはタイプごとに出力されるだけで、定期的なローテーションを行ってくれません。放っておくとひたすら1つのファイルにアペンドされていきます。インストール使い古されている手ではありますが、表題の件とレンタルサーバへの配置方法などにも使えますので参考にしていただけたらと思います。in」などログイン画面でよくみかけるクッキーログインの機能を使ってみます。CakePHPには、Cookieコンポーネントがあります。(PHPのsetcook独自のバリデーションルールCakePHPで組み込みバリデーションをつくる方法は色々あります。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。