Dalam pembangunan web, pengesahan data adalah proses penting. Dalam pembangunan PHP, komponen pengesahan yang disediakan oleh perpustakaan atau rangka kerja pihak ketiga biasanya digunakan untuk menyelesaikan operasi pengesahan data. Walau bagaimanapun, kadangkala kita perlu menyesuaikan peraturan pengesahan data mengikut keperluan kita sendiri, dan kemudian kita perlu menggunakan pelaksanaan PHP sendiri untuk melengkapkan pengesahan data.
1. Memahami pengesahan data
Pengesahan data merujuk kepada menilai data input untuk menentukan sama ada ia memenuhi peraturan atau keperluan yang diharapkan. Dalam pembangunan web, pengesahan data mempunyai dua tujuan: satu adalah untuk memastikan bahawa data yang dimasukkan oleh pengguna tersedia dan sah, dan satu lagi adalah untuk mengelakkan serangan berniat jahat. Jika kami tidak mengesahkan data yang dimasukkan, kemungkinan besar data yang dimasukkan oleh pengguna akan memberi kesan kepada keseluruhan aplikasi, sekali gus menjejaskan operasi aplikasi yang stabil.
2. Tentukan kelas model
Dalam PHP, kita boleh menggunakan kelas untuk melaksanakan pengesahan data. Pada masa ini kita perlu mentakrifkan kelas model untuk menerangkan model data yang ingin kita sahkan dan menentukan peraturan pengesahan yang ingin kita gunakan.
Mari kita lihat contoh:
class UserModel { public $id; public $username; public $password; /** * 验证规则 */ public function rules() { return [ [['username', 'password'], 'required'], [['id'], 'integer'] ]; } }
Dalam kod di atas, kami mentakrifkan kelas UserModel dan mentakrifkan tiga atribut dalam kelas ini: $id, $username, $password, sepadan dengan id pengguna, nama pengguna dan kata laluan masing-masing.
Dalam kelas ini, kami juga mentakrifkan kaedah rules(), yang mengembalikan tatasusunan Setiap elemen dalam tatasusunan mewakili peraturan pengesahan. Dalam peraturan pengesahan ini, kami menggunakan dua peraturan yang diperlukan dan integer.
3. Laksanakan pengesahan data
Selepas menentukan kelas model, langkah seterusnya ialah melaksanakan operasi pengesahan data. Langkah-langkah untuk melaksanakan pengesahan data adalah seperti berikut:
Mari kita lihat pelaksanaan kod:
class Validate { /** * 模型数据验证 * * @param object $model * @return bool */ public function validate($model) { // 获取验证规则 $rules = $model->rules(); // 遍历每个验证规则 foreach ($rules as $rule) { // 获取要验证的属性名以及验证规则 $attributes = array_shift($rule); $validator = array_shift($rule); // 遍历要验证的属性 foreach ($attributes as $attribute) { // 获取属性对应的值 $value = $model->$attribute; // 根据验证规则进行验证 switch ($validator) { case "required": if (empty($value)) { return false; } break; case "email": if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { return false; } break; case "integer": if (!is_numeric($value)) { return false; } break; default: if (!preg_match($validator, $value)) { return false; } break; } } } return true; } }
Dalam kod di atas, kami mentakrifkan kelas Validate, yang mempunyai validate( ) kaedah untuk melaksanakan pengesahan data .
Dalam kaedah ini, kami mula-mula mendapatkan model data ($model) dan peraturan pengesahan ($peraturan) untuk disahkan. Kemudian, kami mengulangi setiap peraturan pengesahan dan menggunakan fungsi shift() untuk mendapatkan nama atribut ($atribut) dan peraturan pengesahan ($validator) untuk disahkan masing-masing.
Selepas mendapatkan nama atribut untuk disahkan, kami kemudian melintasi atribut ini, mendapatkan nilai atribut yang sepadan dan mengesahkannya. Semasa proses pengesahan untuk setiap atribut, kami menggunakan pernyataan suis untuk mengesahkan sama ada nilai atribut memenuhi keperluan mengikut peraturan pengesahan.
Akhir sekali, kami mengembalikan benar atau salah berdasarkan hasil pengesahan.
4. Gunakan pengesahan data
Selepas melaksanakan kelas pengesahan data, langkah seterusnya ialah menggunakan kelas ini dalam aplikasi untuk melengkapkan pengesahan data.
Mari kita lihat pelaksanaan kod:
// 创建数据模型 $userModel = new UserModel(); // 设置数据 $userModel->id = 1; $userModel->username = 'admin'; $userModel->password = '123456'; // 创建验证器实例 $validator = new Validate(); // 进行数据验证 if ($validator->validate($userModel)) { echo '数据验证通过!'; } else { echo '数据验证失败!'; }
Dalam kod di atas, kami mula-mula mencipta contoh UserModel $userModel dan menetapkan data untuk disahkan. Kami kemudian mencipta contoh Validate $validator dan menggunakan kaedah validate() untuk mengesahkan data dalam $userModel.
Jika hasil pulangan adalah benar, ini bermakna pengesahan data telah lulus jika tidak, ini bermakna pengesahan data telah gagal.
5. Ringkasan
Melalui artikel ini, kami mempelajari cara menggunakan pelaksanaan tersuai dalam PHP untuk melengkapkan pengesahan data. Dengan melaksanakan kelas pengesahan data, kami boleh menentukan secara fleksibel data yang perlu disahkan dan peraturan pengesahannya yang sepadan, dengan itu lebih memastikan kestabilan dan keselamatan aplikasi.
Atas ialah kandungan terperinci Satu contoh menerangkan cara menggunakan PHP untuk melaksanakan fungsi pengesahan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!