ホームページ > 記事 > PHPフレームワーク > yiiへの登録方法
登録
詳細テンプレートで、frontend/index.php?r=site/signup ページに入ると、フレームワークの登録ページが表示されます
ユーザー名、電子メール、パスワードを入力して [サインアップ] をクリックした後、形式が間違っている場合は、frontend/models/SignuForm の rules() 関数によって予備検証が実行されます。すべての形式が正しいです。データは、frontend/controllers/SiteController の actionSignup() 関数に転送されます。この関数は、ユーザーが入力した登録情報を読み込みます。frontend/models/SignupForm のsignup() 関数です。
以下の引用文は説明機能です 本文中の具体的な内容は読まなくても全体に影響しません 折り込みテキスト機能がないため引用方法を使用しています 以下同様です
if (!$this->validate()) { return null; }
signup() 関数は、最初に yii2/base/Model の validate() 関数を呼び出します。検証
最初のステップは、frontend/models/SignuForm で rules() 関数を使用するときに、ユーザー入力
if ($clearErrors) { $this->clearErrors(); }
2 番目のステップでは、beforeValidate() 関数が beforeValidate イベントをトリガーし、true を返します
3 番目のステップでは、シナリオを設定します。デフォルトはデフォルトです
## 4 番目のステップでは、$attributeNames が null であるため、実行後に$attributeNames = $this->activeAttributes();が返されますarray (3) { [0]=> string(8) "username" [1]= > string(5) "email" [2]=> string(8) >"password" }
#データ テーブル user
#ユーザーはユーザー名、パスワード、電子メールを入力しました。Yii2 フレームワークは他のフィールドをどのように生成しますか?まず、password_hash を見てみましょう。SignupFrom のサインアップ関数でのパスワード生成は setPassword 関数です。 setPassword 関数は、yii2/base/Security 内の各ルールのgeneratePasswordHash 関数を呼び出します。
if (function_exists('password_hash')) { /** @noinspection PhpUndefinedConstantInspection */ return password_hash($password, PASSWORD_DEFAULT, ['cost' => $cost]); }ある場合は、password_hash関数を使用して暗号化します。PHPにpassword_hash関数がない場合は、crypt関数を使用して暗号化します。初期判断ではPHP 5.5未満のバージョンと互換性があると判断されます。結局のところ、5.5 以降のバージョンでのみこの機能が使用され始めます。password_hash 関数common/models/User's signedup() 関数は、パスワードを暗号化した後も認証キーを生成し続けます。認証キーは検証情報です。 認証キーの生成メソッドは、yii2/base/Security のgenerateRandomStringでもあり、generateRandomString は、generateRandomKey 関数を呼び出します。PHP バージョンが 5.2 ~ 5.6 または 7 の場合は、random_bytes を使用してください。 32 ワードのセクション文字列を生成するには、そうでない場合、使用しているシステムが Windows で OpenSSL がインストールされている場合、openssl_random_pseudo_bytes 関数が呼び出されて生成されます。OpenSSL をインストールしていない場合は、mcrypt_create_iv が生成に使用されます。
使用しているシステムが Windows ではない場合は、/dev/urandom を呼び出す必要があります。FreeBSD システムは特殊です。/dev/random を呼び出し、stream_set_read_buffer メソッドを呼び出して、 8 バイトの文字ファイル。生成後、fread 関数でファイル内の 32 バイトを読み取り、データを返します。
password_reset_token は、ユーザーの登録時には空です。ユーザーがパスワードを忘れて、ログイン ページで [リセット] をクリックしたときに生成されます。ユーザーが電子メールの送信後にパスワードをリセットするときの検証に使用されます。
ステータスは common/models/User で定義されます
const STATUS_DELETED = 0; const STATUS_ACTIVE = 10;ユーザー登録時のルールのステータスはデフォルトで 10 に設定されます。
created_time と updated_time も common/models/ にありますUser の Behaviors() 関数で生成された
ユーザーのデータは、修飾されていることが検証され、フレームワークによって生成されたデータも加えて、データのユーザー テーブルに保存されます。
yii フレームワーク
以上がyiiへの登録方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。