Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah CakePHP melakukan pengesahan borang?

Bagaimanakah CakePHP melakukan pengesahan borang?

PHPz
PHPzasal
2023-06-04 08:13:561389semak imbas

CakePHP ialah rangka kerja aplikasi web yang ditulis dalam PHP, yang berdasarkan corak MVC (Model-View-Controller). Borang adalah bahagian penting dalam aplikasi web kerana ia sering menjadi salah satu cara pengguna berinteraksi dengan pelanggan. Memandangkan data borang boleh diubah suai oleh penyerang, pengesahan diperlukan apabila menerima dan memproses data borang. Artikel ini akan memperkenalkan pengesahan borang dalam CakePHP.

  1. Tujuan Pengesahan Borang

Borang ialah komponen yang berinteraksi secara langsung dengan pengguna. Apabila pengguna menyerahkan borang, anda perlu mengesahkan bahawa data borang sepadan dengan keperluan aplikasi anda. Contohnya, anda mungkin ingin mengesahkan bahawa borang mengandungi format yang betul, seperti format e-mel atau format tarikh. Anda juga perlu mengesahkan bahawa borang tersebut mengandungi medan yang diperlukan, seperti maklumat yang diperlukan seperti nombor telefon mudah alih atau alamat. Jika mana-mana data dalam borang tidak memenuhi keperluan anda, anda perlu memberitahu pengguna dan menghalang penyerahan selanjutnya.

  1. Kekangan pengesahan

Dalam CakePHP, pengesahan borang dilaksanakan melalui kekangan pengesahan. Kekangan pengesahan ialah peraturan pengesahan yang anda mahu gunakan apabila syarat tertentu dipenuhi. Anda boleh melaksanakan pengesahan merentas medan menggunakan salah satu daripada beberapa kekangan pengesahan dalam CakePHP. Kekangan pengesahan ini boleh digunakan untuk model individu, perkaitan model dan keseluruhan aplikasi.

Berikut ialah beberapa kekangan pengesahan yang biasa digunakan:

(1) equalTo: Semak sama ada nilai dua medan adalah sama.

(2) notKosong: Periksa sama ada medan itu kosong.

(3) e-mel: Semak sama ada medan mengandungi alamat e-mel yang sah.

(4) unik: Semak sama ada nilai dalam medan adalah unik dalam pangkalan data.

(5) notBlank: Semak sama ada medan mengandungi rentetan bukan kosong.

(6) angka: Semak sama ada medan mengandungi nombor.

(7) julat: Semak sama ada nilai dalam medan berada dalam julat yang ditentukan.

  1. Penggunaan pengesahan borang

Dalam CakePHP, anda boleh menggunakan kelas model untuk mentakrifkan peraturan pengesahan. Berikut ialah penggunaan pengesahan borang biasa:

(1) Tentukan peraturan pengesahan dalam kod model:

class User extends AppModel {
    public $validate = array(
        'username' => array(
            'required' => true,
            'rule' => 'notEmpty',
            'message' => 'A username is required'
        ),
        'password' => array(
            'required' => true,
            'rule' => 'notEmpty',
            'message' => 'A password is required'
        ),
        'email' => array(
            'required' => true,
            'rule' => 'email',
            'message' => 'Please provide a valid email address'
        ),
        'role' => array(
            'required' => true,
            'inList' => array('admin', 'author', 'editor'),
            'message' => 'Please select a valid role'
        )
    );
}

(2) Sahkan borang dalam kod pengawal:

public function register() {
    if ($this->request->is('post')) {
        $this->User->set($this->request->data);
        if ($this->User->validates()) {
            // 保存用户信息
        } else {
            $this->Flash->error(__('The user could not be saved. Please, try again.'));
        }
    }
}

Kod di atas mula-mula menetapkan data dalam permintaan POST kepada contoh model Pengguna, dan kemudian memanggil kaedah validates() untuk pengesahan. Jika pengesahan diluluskan, maklumat pengguna akan disimpan. Jika tidak, mesej ralat akan dipaparkan.

  1. Mesej Ralat Tersuai

Anda boleh menetapkan mesej ralat tersuai untuk setiap peraturan pengesahan. Ini selalunya berguna kerana anda boleh memaparkan mesej ralat berdasarkan keperluan aplikasi anda.

Berikut ialah contoh mesej ralat tersuai:

public $validate = array(
    'username' => array(
        'required' => true,
        'rule' => 'notEmpty',
        'message' => 'A username is required'
    ),
    'email' => array(
        'required' => true,
        'rule' => 'email',
        'message' => 'Please provide a valid email address'
    )
);
  1. Kesimpulan

Pengesahan borang ialah bahagian yang sangat penting dalam pembangunan web. Rangka kerja CakePHP menyediakan banyak fungsi dan kaedah yang berguna untuk membantu anda mengesahkan data borang dan memaparkan mesej ralat dengan mudah. Apabila mentakrifkan peraturan pengesahan, anda boleh menggunakan pelbagai kekangan pengesahan dan mesej ralat tersuai. Menggunakan pengesahan borang dalam CakePHP ialah tabiat yang baik dan boleh membantu anda menulis aplikasi web yang lebih selamat dan mantap.

Atas ialah kandungan terperinci Bagaimanakah CakePHP melakukan pengesahan borang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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