国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah rangka kerja php YII yii怎么搞注冊(cè)

yii怎么搞注冊(cè)

Dec 16, 2019 am 10:22 AM
yii

yii怎么搞注冊(cè)

注冊(cè)

在advanced模板中,進(jìn)入frontend/index.php?r=site%2Fsignup頁(yè)面,可以看到框架的注冊(cè)頁(yè)面

1.jpg

填寫完Username、Email和Password后點(diǎn)擊Signup后,如果格式不對(duì),frontend/models/SignuForm中的rules()函數(shù)會(huì)進(jìn)行初步驗(yàn)證,所有格式正確后,數(shù)據(jù)傳輸?shù)?frontend/controllers /SiteController中的 actionSignup()函數(shù)中,函數(shù)加載用戶輸入的注冊(cè)信息,在frontend/models/SignupForm中的signup()函數(shù),

以下引用的文字為解釋函數(shù)中的具體細(xì)節(jié),不閱讀不影響整體,因?yàn)闆]有折疊文字功能,故采用引用的方法,下同

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

signup() 函數(shù)首先調(diào)用 yii2/base/Model中的validate() 函數(shù)進(jìn)行驗(yàn)證
第一步,清除使用frontend/models/SignuForm中的rules()函數(shù)在用戶輸入時(shí)的錯(cuò)誤信息

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

第二步,beforeValidate()函數(shù)觸發(fā)beforeValidate事件并返回true

第三步,設(shè)置scenario,默認(rèn)是default

第四步,因?yàn)檫@里的$attributeNames為null,

$attributeNames = $this->activeAttributes();

執(zhí)行后返回

array(3) { [0]=> string(8) "username" [1]=> string(5) "email" [2]=> string(8) >"password" }

第五步,$this->getActiveValidators()會(huì)得到frontend/models/SignuForm中的rules()中11條驗(yàn)證規(guī)則給validateAttributes()進(jìn)行驗(yàn)證

第六步,執(zhí)行afterValidate()函數(shù)觸發(fā)afterValidate事件

最后 如果所有驗(yàn)證都通過,$this->hasErrors()為false,所以函數(shù)最后返回true

我們看一下數(shù)據(jù)表user的字段

2.jpg

用戶輸入了username、password和email,Yii2框架是如何生成其他的字段的呢,先看password_hash,在SignupFrom中的signup函數(shù)中的密碼生成是setPassword函數(shù),該函數(shù)在common/models/User中,setPassword函數(shù)調(diào)用了yii2/base/Security中的每一條規(guī)則generatePasswordHash函數(shù)。

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

如果有,就使用password_hash函數(shù)進(jìn)行加密,如果PHP沒有password_hash函數(shù),就使用crypt函數(shù)加密,初步判斷應(yīng)該是為了兼容PHP低于5.5的版本,畢竟大于5.5的版本才開始有password_hash函數(shù)

common/models/User的signup()函數(shù)在對(duì)password加密后,就會(huì)繼續(xù)生成一個(gè)auth key,auth key是當(dāng)用戶在登錄的時(shí)候點(diǎn)擊 remember me的時(shí)候的驗(yàn)證信息,

auth key生成的方法也是在yii2/base/Security中的generateRandomString,generateRandomString調(diào)用generateRandomKey函數(shù),如果你的PHP版本為是5.2~5.6或者是7,那就是用random_bytes生成一個(gè)32個(gè)字節(jié)的字符串,如果不是,當(dāng)你用的系統(tǒng)時(shí)windows并且安裝了OpenSSL,就會(huì)調(diào)用openssl_random_pseudo_bytes函數(shù)生成,如果你未安裝OpenSSL,就會(huì)使用mcrypt_create_iv生成。

如果你使用的系統(tǒng)不是windows,就需要調(diào)用/dev/urandom,FreeBSD系統(tǒng)特殊,會(huì)調(diào)用/dev/random,然后調(diào)用stream_set_read_buffer方法生成8字節(jié)的字符文件,生成后,通過fread函數(shù)讀取該文件中的32個(gè)字節(jié),然后返回該數(shù)據(jù)。
password_reset_token在用戶注冊(cè)的時(shí)候是為空的,當(dāng)用戶忘記密碼在登錄頁(yè)面點(diǎn)擊reset it 后生成的,用來給用法發(fā)送郵件后重置密碼時(shí)進(jìn)行驗(yàn)證。

status 在common/models/User中定義的

const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;

用戶注冊(cè)時(shí)rules中的status默認(rèn)為為10,
created_time和updated_time也是在common/models/User中的behaviors()函數(shù)中生成

用戶的數(shù)據(jù)驗(yàn)證合格,加上框架生成的數(shù)據(jù),然后存儲(chǔ)進(jìn)數(shù)據(jù)的user表里。

推薦學(xué)習(xí):yii框架

Atas ialah kandungan terperinci yii怎么搞注冊(cè). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
Yii2 vs Phalcon: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi pemaparan grafik? Yii2 vs Phalcon: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi pemaparan grafik? Jun 19, 2023 am 08:09 AM

Dalam era maklumat semasa, data besar, kecerdasan buatan, pengkomputeran awan dan teknologi lain telah menjadi tumpuan perusahaan utama. Di antara teknologi ini, teknologi pemaparan kad grafik, sebagai teknologi pemprosesan grafik berprestasi tinggi, telah mendapat perhatian yang lebih. Teknologi pemaparan kad grafik digunakan secara meluas dalam pembangunan permainan, filem dan kesan khas televisyen, pemodelan kejuruteraan dan bidang lain. Bagi pembangun, memilih rangka kerja yang sesuai dengan projek mereka adalah keputusan yang sangat penting. Antara bahasa semasa, PHP ialah bahasa yang sangat dinamik Beberapa rangka kerja PHP yang sangat baik seperti Yii2, Ph

Pertanyaan data dalam rangka kerja Yii: capai data dengan cekap Pertanyaan data dalam rangka kerja Yii: capai data dengan cekap Jun 21, 2023 am 11:22 AM

Rangka kerja Yii ialah rangka kerja aplikasi Web PHP sumber terbuka yang menyediakan pelbagai alatan dan komponen untuk memudahkan proses pembangunan aplikasi Web, yang mana pertanyaan data merupakan salah satu komponen penting. Dalam rangka kerja Yii, kita boleh menggunakan sintaks seperti SQL untuk mengakses pangkalan data untuk membuat pertanyaan dan memanipulasi data dengan cekap. Pembina pertanyaan rangka kerja Yii terutamanya termasuk jenis berikut: pertanyaan ActiveRecord, pertanyaan QueryBuilder, pertanyaan arahan dan pertanyaan SQL asal

Symfony vs Yii2: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi web berskala besar? Symfony vs Yii2: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi web berskala besar? Jun 19, 2023 am 10:57 AM

Memandangkan permintaan untuk aplikasi web terus berkembang, pembangun mempunyai lebih banyak pilihan dalam memilih rangka kerja pembangunan. Symfony dan Yii2 ialah dua rangka kerja PHP yang popular Kedua-duanya mempunyai fungsi dan prestasi yang berkuasa, tetapi apabila berhadapan dengan keperluan untuk membangunkan aplikasi web berskala besar, rangka kerja manakah yang lebih sesuai? Seterusnya kami akan menjalankan analisis perbandingan Symphony dan Yii2 untuk membantu anda membuat pilihan yang lebih baik. Gambaran Keseluruhan Asas Symphony ialah rangka kerja aplikasi web sumber terbuka yang ditulis dalam PHP dan dibina di atas

Cara menggunakan rangka kerja PHP Yii untuk membangunkan sistem sandaran awan yang sangat tersedia Cara menggunakan rangka kerja PHP Yii untuk membangunkan sistem sandaran awan yang sangat tersedia Jun 27, 2023 am 09:04 AM

Dengan perkembangan berterusan teknologi pengkomputeran awan, sandaran data telah menjadi sesuatu yang mesti dilakukan oleh setiap perusahaan. Dalam konteks ini, amat penting untuk membangunkan sistem sandaran awan yang sangat tersedia. Rangka kerja PHP Yii ialah rangka kerja berkuasa yang boleh membantu pembangun membina aplikasi web berprestasi tinggi dengan cepat. Berikut akan memperkenalkan cara menggunakan rangka kerja Yii untuk membangunkan sistem sandaran awan yang sangat tersedia. Mereka bentuk model pangkalan data Dalam rangka kerja Yii, model pangkalan data adalah bahagian yang sangat penting. Kerana sistem sandaran data memerlukan banyak jadual dan hubungan

Apakah perbezaan antara kerangka php laravel dan yii Apakah perbezaan antara kerangka php laravel dan yii Apr 30, 2025 pm 02:24 PM

Perbezaan utama antara Laravel dan Yii adalah konsep reka bentuk, ciri -ciri fungsional dan senario penggunaan. 1. Laravel memberi tumpuan kepada kesederhanaan dan keseronokan pembangunan, dan menyediakan fungsi yang kaya seperti alat eloquentorm dan artisan, sesuai untuk pembangunan dan pemula yang pesat. 2.YII menekankan prestasi dan kecekapan, sesuai untuk aplikasi beban tinggi, dan menyediakan sistem Activerecord dan cache yang cekap, tetapi mempunyai lengkung pembelajaran yang curam.

Yii dengan Docker: Containerizing dan Menggunakan Aplikasi Anda Yii dengan Docker: Containerizing dan Menggunakan Aplikasi Anda Apr 02, 2025 pm 02:13 PM

Langkah -langkah untuk membekalkan dan menggunakan aplikasi YII menggunakan Docker termasuk: 1. Buat Dockerfile dan tentukan proses bangunan imej; 2. Gunakan DockerCompose untuk melancarkan aplikasi YII dan pangkalan data MySQL; 3. Mengoptimumkan saiz dan prestasi imej. Ini melibatkan bukan sahaja operasi teknikal tertentu, tetapi juga memahami prinsip kerja dan amalan terbaik Dockerfile untuk memastikan penggunaan yang cekap dan boleh dipercayai.

Yii2 vs Symfony: Rangka kerja manakah yang lebih baik untuk pembangunan API? Yii2 vs Symfony: Rangka kerja manakah yang lebih baik untuk pembangunan API? Jun 18, 2023 pm 11:00 PM

Dengan perkembangan pesat Internet, API telah menjadi cara penting untuk bertukar-tukar data antara pelbagai aplikasi. Oleh itu, menjadi semakin penting untuk membangunkan rangka kerja API yang mudah diselenggara, cekap dan stabil. Apabila memilih rangka kerja API, Yii2 dan Symfony ialah dua pilihan popular dalam kalangan pembangun. Jadi, yang manakah lebih sesuai untuk pembangunan API? Artikel ini akan membandingkan kedua-dua rangka kerja ini dan memberikan beberapa kesimpulan. 1. Pengenalan asas Yii2 dan Symfony ialah rangka kerja PHP matang dengan sambungan sepadan yang boleh digunakan untuk membangunkan

Panduan Pengaturcaraan Yii2: Kaedah Menjalankan Perkhidmatan Cron Panduan Pengaturcaraan Yii2: Kaedah Menjalankan Perkhidmatan Cron Sep 01, 2023 pm 11:21 PM

Jika anda bertanya "Apakah Yii?", lihat tutorial saya sebelum ini: Pengenalan kepada Rangka Kerja Yii, yang menyemak faedah Yii dan menggariskan perkara baharu dalam Yii 2.0, yang dikeluarkan pada Oktober 2014. Hmm> Dalam siri Pengaturcaraan dengan Yii2 ini, saya akan membimbing pembaca menggunakan rangka kerja Yii2PHP. Dalam tutorial hari ini, saya akan berkongsi dengan anda cara memanfaatkan fungsi konsol Yii untuk menjalankan kerja cron. Pada masa lalu, saya telah menggunakan wget - URL yang boleh diakses web - dalam tugas cron untuk menjalankan tugas latar belakang saya. Ini menimbulkan kebimbangan keselamatan dan mempunyai beberapa masalah prestasi. Semasa saya membincangkan beberapa cara untuk mengurangkan risiko dalam siri Keselamatan untuk Permulaan kami, saya berharap untuk beralih kepada arahan yang dipacu konsol

See all articles