Thinkphp+AJAX动态验证用户输入是否合法
Thinkphp+AJAX动态验证用户输入是否合法
遇到用户注册等情况时,如果等用户输入所有信息,点击注册按钮提交后,再验证输入是否正确,体验很不好,而且很浪费用户的时间,增加注册成本,这里提供一个例子,演示了怎么使用ajax进行单步验证,使用thinkphp 3.2框架,环境WAMPServer 2.4,版本PHP 5.4.16+ Apache 2.4.4+ MySql 5.6.12
一、数据库设计:
数据库名 thinkphp
表名 tp_user 其中tp_是表前缀,可以在config.php中定义,操作表的时候只用user就行
CREATE TABLE IF NOT EXISTS `tp_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
二、页面设计
三、HTML部分
view/Index/index.html
四、thinkphp自动验证
protected $_validate=array( array('username','require','用户名不能为空!'), array('username','','用户名已经存在',0,'unique',1), array('username','/^[a-zA-Z][a-zA-Z0-9_]{1,19}$/','用户名不合法!'), array('email','require','邮箱不能为空!'), array('email','email','邮箱格式不正确!'), array('email','','该邮箱已经注册过!',0,'unique',1), ); protected $_auto = array( array('password', 'md5', 1, 'function'), // 对password字段在新增的时候使md5函数处理 );
五、 使用ajax
用户输入用户名后,当输入框失去焦点时会触发blur事件,可以在这时候验证用户名输入是否正确
jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求
参数:
url (String) : 发送请求的URL地址.
data (Map) : (可选) 要发送给服务器的数据,以 Keyalue 的键值对形式表示。
callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。
type (String) : (可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)
$('#username').blur( function() { var username = $(this).val(); $.post(index.php/Home/Index/checkName, { 'username' : username//前一个username需要跟UserModel对应,即跟数据库字段对应 }, function(data) { if (data == 0) { error['username'] = 0; $('#tooltip1').attr('class', 'tooltip-info visible-inline success'); } else { error['username'] = 1; $('#tooltip1').attr('class', 'tooltip-info visible-inline error'); $('#mess1').html(data); } }) return false; });
密码,重复密码,邮箱验证类似
验证邮箱的时候需要注意,如果用户输入邮箱后,立刻点击注册按钮,这时候会同时执行注册按钮的click事件,邮箱输入框的blur事件,由于邮箱验证是$.post是异步的,post还没有执行完,click事件里error['email']=1,不会执行$('#submit1').submit();所以这时候再设置一个标志error['submit'] = 0;0表示点击过注册按钮,默认为1,在邮箱blur回调函数中判断error['submit'] 是否等于0,即判断是否点击过,如果点击过,提交表单,如果没点击过,只需要验证邮箱。
用户输入邮箱后,鼠标在屏幕上其他地方点击,只执行blur,跟用户名,密码情况一样。
六、服务器处理
public function checkName() { $user = D ( 'user' ); if (! $user->create ()) { exit ( $user->getError () ); } else { echo 0;//这是回传给$.post的数据,对应上面的data } }
以上是单步验证用户名的方法,下面来看怎么把所有数据提交给服务器
七、 把所有数据提交给服务器
通过上面的html代码注意到这里用了一个form,以post方式提交表单,action指向服务器能处理的地址
点击注册按钮时,先判断所有输入是否正确,如果正确,才执行提交表单
$('#submit1').click(function() { if ($('#username').val() == '') { $('#tooltip1').attr('class', 'tooltip-info visible-inline error'); $('#mess1').html(用户名不能为空!); } if ($('#password').val() == '') { $('#tooltip2').attr('class', 'tooltip-info visible-inline error'); $('#mess2').html(密码不能为空!); } if ($('#repassword').val() == '') { $('#tooltip22').attr('class', 'tooltip-info visible-inline error'); $('#mess22').html(确认密码不能为空!); } if ($('#email').val() == '') { $('#tooltip3').attr('class', 'tooltip-info visible-inline error'); $('#mess3').html(邮箱不能为空!); } if (error['username'] == 1) { var scroll_offset = $(#tooltip1).offset(); // 如果用户名验证失败,屏幕会滚动到用户名的位置,让用户重新输入 $(body,html).animate({ scrollTop : scroll_offset.top // 让body的scrollTop等于pos的top,就实现了滚动 }, 0); return false; } else if (error['password'] == 1) { return false; } else if (error['email'] == 1) { error['submit'] = 0; return true; } else { $('#submit1').submit(); return true; } });
服务器端register方法接收所有数据,如果成功跳转到Home/index页面,如果失败,跳转到错误提示页面
public function register() { $user = D ( 'user' ); if (! $user->create ()) { dump ( $user->getError () ); } $uid = $user->add (); if ($uid) { $_SESSION ['username'] = $_POST ['username']; $this->redirect ( 'Home/index' ); } else { $this->error ( 注册失败! ); } }
八、config.php配置
<!--?php return array( /* 数据库配置 */ 'DB_TYPE' =--> 'mysql', // 数据库类型 'DB_HOST' => '127.0.0.1', // 服务器地址 'DB_NAME' => 'thinkphp', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '123', // 密码 'DB_PORT' => '3306', // 端口 'DB_PREFIX' => 'tp_', // 数据库表前缀 );

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dengan perkembangan pesat media sosial, Xiaohongshu telah menjadi salah satu platform sosial yang paling popular. Pengguna boleh membuat akaun Xiaohongshu untuk menunjukkan identiti peribadi mereka dan berkomunikasi serta berinteraksi dengan pengguna lain. Jika anda perlu mencari nombor Xiaohongshu pengguna, anda boleh mengikuti langkah mudah ini. 1. Bagaimana untuk menggunakan akaun Xiaohongshu untuk mencari pengguna? 1. Buka APP Xiaohongshu, klik butang "Temui" di penjuru kanan sebelah bawah, dan kemudian pilih pilihan "Nota". 2. Dalam senarai nota, cari nota yang disiarkan oleh pengguna yang ingin anda cari. Klik untuk memasuki halaman butiran nota. 3. Pada halaman butiran nota, klik butang "Ikuti" di bawah avatar pengguna untuk memasuki halaman utama peribadi pengguna. 4. Di penjuru kanan sebelah atas halaman utama peribadi pengguna, klik butang tiga titik dan pilih "Maklumat Peribadi"

Utiliti Pengguna dan Kumpulan Tempatan terbina dalam Pengurusan Komputer dan boleh diakses dari konsol atau secara bebas. Walau bagaimanapun, sesetengah pengguna mendapati bahawa pengguna dan kumpulan tempatan tiada dalam Windows 11. Bagi sesetengah orang yang mempunyai akses kepadanya, mesej tersebut menunjukkan bahawa snap-in ini mungkin tidak berfungsi dengan versi Windows 10 ini. Untuk mengurus akaun pengguna untuk komputer ini, gunakan alat Akaun Pengguna dalam Panel Kawalan. Isu ini telah dilaporkan dalam lelaran Windows 10 sebelumnya dan biasanya disebabkan oleh isu atau kesilapan di pihak pengguna. Mengapakah pengguna dan kumpulan tempatan tiada dalam Windows 11? Anda menjalankan edisi Windows Home, pengguna dan kumpulan tempatan tersedia pada edisi Profesional dan ke atas. Aktiviti

Dalam sistem Ubuntu, pengguna root biasanya dilumpuhkan. Untuk mengaktifkan pengguna root, anda boleh menggunakan arahan passwd untuk menetapkan kata laluan dan kemudian menggunakan arahan su untuk log masuk sebagai root. Pengguna akar ialah pengguna dengan hak pentadbiran sistem tanpa had. Dia mempunyai kebenaran untuk mengakses dan mengubah suai fail, pengurusan pengguna, pemasangan dan pengalihan keluar perisian, dan perubahan konfigurasi sistem. Terdapat perbezaan yang jelas antara pengguna akar dan pengguna biasa Pengguna akar mempunyai kuasa tertinggi dan hak kawalan yang lebih luas dalam sistem. Pengguna akar boleh melaksanakan perintah sistem yang penting dan mengedit fail sistem, yang tidak boleh dilakukan oleh pengguna biasa. Dalam panduan ini, saya akan meneroka pengguna akar Ubuntu, cara log masuk sebagai akar, dan bagaimana ia berbeza daripada pengguna biasa. Notis

Apabila mencipta mesin maya, anda akan diminta untuk memilih jenis cakera, anda boleh memilih cakera tetap atau cakera dinamik. Bagaimana jika anda memilih cakera tetap dan kemudian menyedari bahawa anda memerlukan cakera dinamik, atau sebaliknya. Anda boleh menukar satu kepada yang lain? Dalam siaran ini, kita akan melihat cara menukar cakera tetap VirtualBox kepada cakera dinamik dan sebaliknya. Cakera dinamik ialah cakera keras maya yang pada mulanya mempunyai saiz kecil dan membesar dalam saiz semasa anda menyimpan data dalam mesin maya. Cakera dinamik sangat cekap dalam menjimatkan ruang storan kerana ia hanya mengambil sebanyak mungkin ruang storan hos seperti yang diperlukan. Walau bagaimanapun, apabila kapasiti cakera berkembang, prestasi komputer anda mungkin terjejas sedikit. Cakera tetap dan cakera dinamik biasanya digunakan dalam mesin maya

Jika anda ingin menukar cakera dinamik kepada cakera asas dalam Windows 11, anda harus membuat sandaran terlebih dahulu kerana proses itu akan memadamkan semua data di dalamnya. Mengapa anda perlu menukar cakera dinamik kepada cakera asas dalam Windows 11? Menurut Microsoft, cakera dinamik telah ditamatkan dari Windows dan penggunaannya tidak lagi disyorkan. Selain itu, Windows Home Edition tidak menyokong cakera dinamik, jadi anda tidak akan dapat mengakses pemacu logik ini. Jika anda ingin menggabungkan lebih banyak cakera kepada volum yang lebih besar, kami mengesyorkan anda menggunakan Cakera Asas atau Ruang Storan. Dalam artikel ini, kami akan menunjukkan kepada anda cara menukar cakera dinamik kepada cakera asas pada Windows 11 Bagaimana untuk menukar cakera dinamik kepada cakera asas dalam Windows 11? pada permulaannya

Folder tertentu tidak selalu boleh diakses kerana kebenaran, dan dalam panduan hari ini kami akan menunjukkan kepada anda cara untuk mengakses folder pengguna pada pemacu keras lama anda pada Windows 11. Prosesnya mudah tetapi boleh mengambil sedikit masa, kadangkala berjam-jam, bergantung pada saiz pemacu, jadi lebih bersabar dan ikut arahan dalam panduan ini dengan teliti. Mengapa saya tidak boleh mengakses folder pengguna saya pada pemacu keras lama saya? Folder pengguna dimiliki oleh komputer lain, jadi anda tidak boleh mengubah suainya. Anda tidak mempunyai sebarang kebenaran pada folder selain pemilikan. Bagaimana untuk membuka fail pengguna pada cakera keras lama? 1. Ambil pemilikan folder dan tukar kebenaran Cari direktori pengguna lama, klik kanan padanya dan pilih Properties. Navigasi ke "An

Ramai pengguna telah ditambahkan ke sistem Ubuntu Saya ingin memadamkan pengguna yang tidak lagi digunakan. Mari kita lihat tutorial terperinci di bawah. 1. Buka baris arahan terminal dan gunakan perintah userdel untuk memadam pengguna yang ditentukan. Pastikan anda menambah perintah kebenaran sudo, seperti yang ditunjukkan dalam rajah di bawah 2. Apabila memadam, pastikan anda berada dalam direktori pentadbir tidak mempunyai kebenaran ini, seperti yang ditunjukkan dalam rajah di bawah 3. Selepas arahan padam dilaksanakan, bagaimana untuk menilai sama ada ia telah benar-benar dipadamkan? Seterusnya kami menggunakan arahan cat untuk membuka fail passwd, seperti yang ditunjukkan dalam rajah di bawah 4. Kami melihat bahawa maklumat pengguna yang dipadam tidak lagi dalam fail passwd, yang membuktikan bahawa pengguna telah dipadam, seperti yang ditunjukkan dalam rajah di bawah 5. Kemudian kita masukkan fail rumah

sudo (eksekusi superuser) ialah arahan utama dalam sistem Linux dan Unix yang membenarkan pengguna biasa menjalankan perintah tertentu dengan keistimewaan root. Fungsi sudo dicerminkan terutamanya dalam aspek berikut: Menyediakan kawalan kebenaran: sudo mencapai kawalan ketat ke atas sumber sistem dan operasi sensitif dengan membenarkan pengguna mendapatkan kebenaran superuser buat sementara waktu. Pengguna biasa hanya boleh mendapatkan keistimewaan sementara melalui sudo apabila diperlukan, dan tidak perlu log masuk sebagai pengguna super sepanjang masa. Keselamatan yang dipertingkatkan: Dengan menggunakan sudo, anda boleh mengelak daripada menggunakan akaun akar semasa operasi rutin. Menggunakan akaun akar untuk semua operasi boleh menyebabkan kerosakan sistem yang tidak dijangka, kerana sebarang operasi yang salah atau cuai akan mempunyai kebenaran penuh. dan
