Rumah php教程 php手册 ThinkPHP3.1新特性之字段合法性检测详解

ThinkPHP3.1新特性之字段合法性检测详解

Jun 06, 2016 pm 08:21 PM
Ciri-ciri baru

表单提交的字段合法性检测,可以更好的保护数据的安全性。这一特性是3.1安全特性中的一个重要部分。这篇文章主要介绍了ThinkPHP3.1的字段合法性检测,需要的朋友

ThinkPHP3.1版增加了表单提交的字段合法性检测,可以更好的保护数据的安全性。这一特性是3.1安全特性中的一个重要部分。

表单字段合法性检测需要使用create方法创建数据对象的时候才能生效,具体有两种方式:

一、属性定义

可以给模型配置insertFields 和 updateFields属性用于新增和编辑表单设置,使用create方法创建数据对象的时候,不在定义范围内的属性将直接丢弃,避免表单提交非法数据。

insertFields 和 updateFields属性的设置采用字符串(逗号分割多个字段)或者数组的方式,例如:

class UserModel extends Model{ protected $insertFields = array('account','password','nickname','email'); protected $updateFields = array('nickname','email'); }

设置的字段应该是实际的数据表字段,而不受字段映射的影响。

在使用的时候,我们调用create方法的时候,会根据提交类型自动识别insertFields和updateFields属性:

D('User')->create();

使用create方法创建数据对象的时候,新增用户数据的时候,就会屏蔽'account','password','nickname','email' 之外的字段,编辑的时候就会屏蔽'nickname','email'之外的字段。

下面是采用字符串定义的方式,同样有效:

class UserModel extends Model{ protected $insertFields = 'account,password,nickname,email'; protected $updateFields = 'nickname,email'; }

二、方法调用

如果不想定义insertFields和updateFields属性,或者希望可以动态调用,可以在调用create方法之前直接调用field方法,例如,实现和上面的例子同样的作用:

在新增用户数据的时候,使用:

$User = M('User'); $User->field('account,password,nickname,email')->create(); $User->add();

而在更新用户数据的时候,使用:

$User = M('User'); $User->field('nickname,email')->create(); $User->where($map)->save();

这里的字段也是实际的数据表字段。field方法也可以使用数组方式。

使用字段合法性检测后,,你不再需要担心用户在提交表单的时候注入非法字段数据了。显然第二种方式更加灵活一些,根据需要选择吧!

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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

PHP 8.3 dikeluarkan: ciri baharu sepintas lalu PHP 8.3 dikeluarkan: ciri baharu sepintas lalu Nov 27, 2023 pm 12:52 PM

PHP8.3 dikeluarkan: Gambaran keseluruhan ciri baharu Memandangkan teknologi terus berkembang dan memerlukan perubahan, bahasa pengaturcaraan sentiasa dikemas kini dan dipertingkatkan. Sebagai bahasa skrip yang digunakan secara meluas dalam pembangunan web, PHP sentiasa bertambah baik untuk menyediakan pembangun alat yang lebih berkuasa dan cekap. Versi PHP 8.3 yang dikeluarkan baru-baru ini membawakan banyak ciri dan penambahbaikan baharu yang telah lama ditunggu-tunggu Mari kita lihat gambaran keseluruhan ciri baharu ini. Permulaan sifat bukan nol Dalam versi PHP yang lalu, jika harta kelas tidak diberikan nilai secara eksplisit, nilainya

Panduan untuk mempelajari ciri baharu PHP8 dan mendapatkan pemahaman yang mendalam tentang teknologi terkini Panduan untuk mempelajari ciri baharu PHP8 dan mendapatkan pemahaman yang mendalam tentang teknologi terkini Dec 23, 2023 pm 01:16 PM

Analisis mendalam tentang ciri baharu PHP8 untuk membantu anda menguasai teknologi terkini Seiring berjalannya waktu, bahasa pengaturcaraan PHP sentiasa berkembang dan bertambah baik. Versi PHP8 yang dikeluarkan baru-baru ini menyediakan pembangun dengan banyak ciri dan penambahbaikan baharu yang menarik, membawa lebih banyak kemudahan dan kecekapan kepada kerja pembangunan kami. Dalam artikel ini, kami akan menganalisis ciri baharu PHP8 secara mendalam dan memberikan contoh kod khusus untuk membantu anda menguasai teknologi terkini ini dengan lebih baik. Pengkompil JIT PHP8 memperkenalkan kompilasi JIT (Just-In-Time).

Apakah ciri baharu php8 Apakah ciri baharu php8 Sep 25, 2023 pm 01:34 PM

Ciri baharu php8 termasuk pengkompil JIT, potongan jenis, parameter bernama, jenis kesatuan, sifat, penambahbaikan pengendalian ralat, sokongan pengaturcaraan tak segerak, fungsi perpustakaan standard baharu dan sambungan kelas tanpa nama. Pengenalan terperinci: 1. Pengkompil JIT, PHP8 memperkenalkan pengkompil JIT, yang merupakan peningkatan prestasi yang penting Pengkompil JIT boleh menyusun dan mengoptimumkan beberapa kod pelaksanaan frekuensi tinggi dalam masa nyata, dengan itu meningkatkan kelajuan larian , PHP8 memperkenalkan fungsi inferens jenis, membenarkan pembangun menyimpulkan secara automatik jenis pembolehubah apabila mengisytiharkan pembolehubah, dsb.

Tafsiran ciri baharu bahasa Go: menjadikan pengaturcaraan lebih cekap Tafsiran ciri baharu bahasa Go: menjadikan pengaturcaraan lebih cekap Mar 10, 2024 pm 12:27 PM

[Tafsiran ciri baharu bahasa Go: Untuk menjadikan pengaturcaraan lebih cekap, contoh kod khusus diperlukan] Dalam beberapa tahun kebelakangan ini, bahasa Go telah menarik banyak perhatian dalam bidang pembangunan perisian, dan konsep reka bentuknya yang ringkas dan cekap telah menarik lebih banyak lagi. pemaju. Sebagai bahasa pengaturcaraan yang ditaip secara statik, bahasa Go terus memperkenalkan ciri baharu untuk meningkatkan kecekapan pembangunan dan memudahkan proses penulisan kod. Artikel ini akan memberikan penjelasan mendalam tentang ciri terbaharu bahasa Go dan membincangkan cara merasai kemudahan yang dibawa oleh ciri baharu ini melalui contoh kod tertentu. Pembangunan modular (GoModules) Bahasa Go daripada 1

Gambaran keseluruhan ciri baharu CSS3: Cara menggunakan CSS3 untuk mencapai kesan peralihan Gambaran keseluruhan ciri baharu CSS3: Cara menggunakan CSS3 untuk mencapai kesan peralihan Sep 09, 2023 am 11:27 AM

Gambaran keseluruhan ciri baharu CSS3: Cara menggunakan CSS3 untuk mencapai kesan peralihan CSS3 ialah versi terbaru CSS Di antara banyak ciri baharu, yang paling menarik dan praktikal ialah kesan peralihan. Kesan peralihan boleh menjadikan halaman kami lebih lancar dan cantik semasa interaksi, memberikan pengguna pengalaman visual yang baik. Artikel ini akan memperkenalkan penggunaan asas kesan peralihan CSS3, dengan contoh kod yang sepadan. atribut transition-property: Tentukan kesan peralihan sifat CSS yang perlu dialihkan

Sambungan Redis baharu diperkenalkan dalam PHP8.1 Sambungan Redis baharu diperkenalkan dalam PHP8.1 Jul 07, 2023 pm 09:41 PM

Sambungan Redis baharu yang diperkenalkan dalam PHP8.1 Dengan perkembangan pesat Internet, sejumlah besar data perlu disimpan dan diproses. Untuk meningkatkan kecekapan dan prestasi pemprosesan data, caching telah menjadi bahagian yang sangat diperlukan. Dalam pembangunan PHP, Redis, sebagai sistem storan nilai kunci berprestasi tinggi, digunakan secara meluas dalam caching dan senario penyimpanan data. Untuk meningkatkan lagi pengalaman menggunakan Redis dalam PHP, PHP8.1 memperkenalkan sambungan Redis baharu Artikel ini akan memperkenalkan fungsi baharu sambungan ini dan menyediakan

Apakah ciri baharu bahasa go? Apakah ciri baharu bahasa go? Aug 24, 2023 pm 01:36 PM

Ciri-ciri baharu bahasa go ialah: 1. Modul Go, digunakan untuk menguruskan kebergantungan projek bahasa Go 2. Pengendalian ralat, menambah ralat jenis ralat baharu, menjadikan pengendalian ralat lebih fleksibel dan ringkas 3. Pakej konteks, digunakan Digunakan untuk lulus nilai julat permintaan antara goroutine; 4. Embedding, iaitu, satu struktur boleh dibenamkan dalam struktur lain 5. Pakej penyegerakan, untuk mengawal penyegerakan dan komunikasi antara goroutine dengan lebih baik; jenis ralat; 7. Generik membolehkan pembangun menulis dengan lebih fleksibel.

Gambaran keseluruhan ciri baharu CSS3: Cara menggunakan CSS3 untuk mencapai reka letak berpusat mendatar Gambaran keseluruhan ciri baharu CSS3: Cara menggunakan CSS3 untuk mencapai reka letak berpusat mendatar Sep 09, 2023 pm 04:09 PM

Gambaran keseluruhan ciri baharu CSS3: Cara menggunakan CSS3 untuk mencapai susun atur berpusat mendatar Dalam reka bentuk dan reka letak web, reka letak berpusat mendatar adalah keperluan biasa. Pada masa lalu, kami sering menggunakan helah JavaScript atau CSS yang kompleks untuk mencapai ini. Walau bagaimanapun, CSS3 memperkenalkan beberapa ciri baharu yang menjadikan reka letak berpusat mendatar lebih mudah dan lebih fleksibel. Artikel ini akan memperkenalkan beberapa ciri baharu CSS3 dan menyediakan beberapa contoh kod untuk menunjukkan cara menggunakan CSS3 untuk mencapai reka letak berpusat mendatar. 1. Gunakan flexbox untuk susun atur fle

See all articles