Rumah > Artikel > rangka kerja php > Pengesahan borang dalam rangka kerja Yii: memastikan data input adalah betul
Rangka kerja Yii ialah rangka kerja pembangunan aplikasi web yang cekap dan fleksibel. Dalam rangka kerja Yii, pengesahan borang adalah bahagian penting untuk memastikan data yang dimasukkan oleh pengguna adalah betul. Artikel ini akan memperkenalkan pengesahan borang dan teknologi berkaitan dalam rangka kerja Yii.
1. Gambaran keseluruhan pengesahan borang
Pengesahan borang merujuk kepada pengesahan data input sebelum menyerahkannya untuk memastikan data mematuhi format dan keperluan yang ditetapkan. Dalam rangka kerja Yii, pengesahan borang boleh dilaksanakan melalui model Model adalah pembawa pemindahan data antara pengawal dan pandangan Model mentakrifkan medan data yang perlu disahkan dalam borang dan peraturan pengesahannya. Pengesahan borang boleh menghalang pengguna daripada memasukkan data haram dan melindungi aplikasi daripada serangan berniat jahat.
2. Operasi khusus pengesahan borang
Dalam rangka kerja Yii, pengesahan borang termasuk langkah berikut:
Dalam rangka kerja Yii, model ialah kelas dan perlu mewarisi kelas yii aseModel. Medan yang perlu disahkan dan peraturan pengesahannya perlu ditakrifkan dalam kelas model. Contohnya, kod berikut mentakrifkan kelas model bernama LoginForm, yang perlu mengesahkan nama pengguna dan kata laluan:
class LoginForm extends yiiaseModel { public $username; public $password; public function rules() { return [ [['username', 'password'], 'required'], ['password', 'validatePassword'], ]; } public function validatePassword($attribute, $params) { $user = User::findByUsername($this->username); if (!$user || !$user->validatePassword($this->password)) { $this->addError($attribute, '用户名或密码不正确'); } } }
Dalam kod di atas, kaedah rules() digunakan untuk mentakrifkan peraturan pengesahan dan ia mengembalikan tatasusunan , setiap elemen mewakili peraturan. Contohnya, ['username', 'required']
menunjukkan bahawa medan nama pengguna mesti diisi dan ['password', 'validatePassword']
menunjukkan bahawa kaedah validatePassword() mesti dipanggil untuk pengesahan. Dalam kaedah validatePassword(), $attribute mewakili nama atribut yang akan disahkan dan $params ialah parameter pilihan yang mewakili data lain untuk dihantar ke kaedah pengesahan.
Selepas menentukan model, anda perlu mencipta borang dalam paparan dan mengikat model pada borang. Dalam rangka kerja Yii, borang boleh dibuat menggunakan kelas yiiwidgetsActiveForm. Sebagai contoh, kod berikut mentakrifkan borang yang mengandungi dua kotak input:
<?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'username') ?> <?= $form->field($model, 'password')->passwordInput() ?> <div class="form-group"> <?= Html::submitButton('登录', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>
Dalam kod di atas, $model mewakili model yang akan diikat, $form->field($model, 'username')
digunakan untuk mencipta kotak input nama pengguna dan Bind ia ke medan nama pengguna dalam model. Begitu juga, $form->field($model, 'password')->passwordInput()
digunakan untuk mencipta kotak input kata laluan dan mengikatnya pada medan kata laluan dalam model.
Sebelum menyerahkan data borang, pengesahan borang diperlukan. Dalam rangka kerja Yii, anda boleh menggunakan kaedah $model->validate() untuk pengesahan. Contohnya, kod berikut mengesahkan data borang sebelum menyerahkannya:
$model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { // 验证通过,处理表单数据 }
Dalam kod di atas, $model->load(Yii::$app->request->post())
digunakan untuk memuatkan data borang ke dalam model dan $model->validate()
digunakan untuk mengesahkan sama ada data borang mematuhi peraturan yang ditetapkan model. Jika pengesahan lulus, anda boleh terus memproses data borang jika tidak, anda perlu kembali ke halaman borang dan memaparkan mesej ralat pengesahan.
Apabila pengesahan borang gagal, mesej ralat yang sepadan perlu dipaparkan dalam paparan. Dalam rangka kerja Yii, semua mesej ralat boleh dipaparkan menggunakan kaedah $form->errorSummary($model)
. Contohnya, kod berikut memaparkan semua mesej ralat pengesahan di bahagian atas borang:
<?php $form = ActiveForm::begin(); ?> <?= $form->errorSummary($model) ?> <?= $form->field($model, 'username') ?> <?= $form->field($model, 'password')->passwordInput() ?> <div class="form-group"> <?= Html::submitButton('登录', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>
Dalam kod di atas, $form->errorSummary($model)
digunakan untuk memaparkan semua mesej ralat pengesahan.
3. Langkah berjaga-jaga untuk pengesahan borang
Apabila menggunakan rangka kerja Yii untuk pengesahan borang, anda perlu memberi perhatian kepada perkara berikut:
$form->errorSummary($model)
untuk memaparkan semua mesej ralat pengesahan. Ringkasnya, pengesahan borang ialah fungsi yang sangat penting dalam rangka kerja Yii dan merupakan kunci untuk memastikan keselamatan dan pengendalian aplikasi web yang stabil. Apabila menggunakan rangka kerja Yii untuk membangunkan aplikasi web, anda perlu menggunakan sepenuhnya teknologi pengesahan borang untuk memastikan bahawa input data oleh pengguna berada dalam format yang betul, selamat dan boleh dipercayai.
Atas ialah kandungan terperinci Pengesahan borang dalam rangka kerja Yii: memastikan data input adalah betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!