Heim  >  Artikel  >  PHP-Framework  >  So registrieren Sie sich bei yii

So registrieren Sie sich bei yii

尚
Original
2019-12-16 10:22:161920Durchsuche

So registrieren Sie sich bei yii

Registrieren

Geben Sie in der erweiterten Vorlage die Anmeldeseite frontend/index.php?r=site%2F ein und Sie können die Registrierungsseite des Frameworks sehen

So registrieren Sie sich bei yii

Nachdem Sie den Benutzernamen, die E-Mail-Adresse und das Passwort eingegeben und auf „Anmelden“ geklickt haben, führt die Funktion „rules()“ in frontend/models/SignuForm eine vorläufige Überprüfung durch Alle Formate sind korrekt. Die Daten werden an die Funktion actionSignup() in frontend/controllers/SiteController übertragen. Die Funktion lädt die vom Benutzer eingegebenen Registrierungsinformationen in frontend/models/SignupForm,

Der unten zitierte Text ist die Erklärungsfunktion. Die darin enthaltenen spezifischen Details haben keinen Einfluss auf das Ganze, da es keine Falttextfunktion gibt

if (!$this->validate()) {
  return null;
}

Die Funktion „signup()“ ruft zunächst die Funktion „validate()“ in yii2/base/Model Verification auf.

Der erste Schritt besteht darin, die Fehlermeldung zu löschen, wenn der Benutzer Eingaben mit der Funktion „rules()“ in „frontend/models/“ durchführt. SignuForm

if ($clearErrors) {
  $this->clearErrors();
}

Der zweite Schritt besteht darin, dass die Funktion beforeValidate() das Ereignis beforeValidate auslöst und true zurückgibt

Im dritten Schritt legen Sie das Szenario fest, der Standardwert ist Standard

Die Vierter Schritt: Da die $attributeNames hier null sind, gibt

$attributeNames = $this->activeAttributes();

nach der Ausführung das Array

zurück (3) { [0]=> string(8) "username" [1]=> ; string(5) "email" [2]=> string(8) >"password" }


Der fünfte Schritt, $this->getActiveValidators(), erhält die 11. Validierung Regeln in Rules() in Frontend/Models/SignuForm für ValidationAttributes() zur Überprüfung


Sechs Schritte: Führen Sie die Funktion afterValidate() aus, um das AfterValidate-Ereignis auszulösen


Endlich , wenn alle Überprüfungen erfolgreich sind, ist $this->hasErrors() falsch, sodass die Funktion schließlich true zurückgibt


Werfen wir einen Blick auf das Benutzerfeld in der Datentabelle

So registrieren Sie sich bei yii

Der Benutzer hat Benutzername, Passwort und E-Mail eingegeben. Wie generiert das Yii2-Framework zuerst die Passwortgenerierung in der Anmeldefunktion in SignupFrom? common/models/User. Die Funktion „setPassword“ ruft die Funktion „generatePasswordHash“ jeder Regel in yii2/base/Security auf.

if (function_exists('password_hash')) {
  /** @noinspection PhpUndefinedConstantInspection */
  return password_hash($password, PASSWORD_DEFAULT, ['cost' => $cost]);
}

Wenn ja, verwenden Sie die Funktion „password_hash“ zur Verschlüsselung. Wenn PHP keine Funktion „password_hash“ hat, verwenden Sie die Funktion „crypt“ zur Verschlüsselung. Das erste Urteil ist, dass sie mit PHP-Versionen vor 5.5 kompatibel sein muss . Schließlich verfügen Versionen über 5.5 erst über die Funktion „password_hash“

common/models/User's signup(), um nach der Verschlüsselung des Passworts weiterhin einen Authentifizierungsschlüssel zu generieren Wenn der Benutzer beim Anmelden auf „Mich erinnern“ klickt.

Die Methode zum Generieren des Authentifizierungsschlüssels lautet auch „generateRandomString“ in yii2/base/Security. Wenn Ihre PHP-Version 5.2~5.6 oder 7 ist, verwenden Sie random_bytes, um eine Abschnittszeichenfolge mit 32 Wörtern zu generieren. Wenn nicht, wird die Funktion openssl_random_pseudo_bytes aufgerufen, um sie zu generieren, wenn Sie Windows verwenden und OpenSSL installiert ist. Wenn Sie OpenSSL nicht installieren, wird mcrypt_create_iv zum Generieren verwendet .


Wenn das von Ihnen verwendete System nicht Windows ist, müssen Sie /dev/urandom aufrufen. Das System ist speziell. Es ruft /dev/random auf und ruft dann die Methode stream_set_read_buffer auf 8-Byte-Zeichendatei. Lesen Sie nach der Generierung 32 Bytes in der Datei über die Funktion fread und geben Sie dann die Daten zurück.

password_reset_token ist leer, wenn der Benutzer sich registriert. Es wird generiert, wenn der Benutzer das Passwort vergisst und auf der Anmeldeseite auf „Zurücksetzen“ klickt. Es wird zur Überprüfung verwendet, wenn das Passwort nach dem Senden einer E-Mail an den Benutzer zurückgesetzt wird.

Status wird in „Common/Models/User“ definiert.

const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;

Der Status in den Regeln ist standardmäßig 10, wenn sich ein Benutzer registriert.

Create_Time und Updated_Time sind ebenfalls in „Common/Models“ angegeben / Die Funktion „behaviours()“ in „Benutzer“ generiert

Benutzerdaten, die als qualifiziert überprüft werden, sowie die vom Framework generierten Daten und speichert sie dann in der Benutzertabelle der Daten.

Empfohlenes Lernen:

yii-Framework

Das obige ist der detaillierte Inhalt vonSo registrieren Sie sich bei yii. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn