cara validasi formulir di kedua belah pihak menggunakan php dan jquery
DESCRIPTION
Belajar PHPTRANSCRIPT
Cara Validasi Formulir di kedua belah pihak menggunakan PHP dan jQuery
13 Januari 2009
Viagra Pfizer Singapore, Pembelian Viagra Inggris @ online ada sisi Paypal Resep (menggunakan PHP). Jadi saya menulis tutorial tentang hal itu, menambahkan beberapa fitur menarik dengan jQuery :
Kita akan belajar bagaimana untuk memvalidasi formulir Anda menggunakan PHP dan jQuery di kedua sisi: sisi client (menggunakan javascript dengan jQuery ) dan sisi server (menggunakan PHP). Ini akan menarik untuk melihat bagaimana menggunakan ekspresi reguler untuk memvalidasi berbagai jenis e-mail, password dan banyak lagi.
Seperti biasa, di sini Anda memiliki preview apa yang akan kita lakukan:
Anda dapat mencoba contoh yang hidup sebelum melanjutkan membaca tutorial. Ingat bahwa jika Anda ingin mencoba sisi server, Anda perlu menonaktifkan javascript di browser web Anda!
Diuji dalam: Firefox , Internet Explorer 6 & 7 , Opera , Safari & Chrome .
Mari kita belajar guys!
Pengantar
Seperti yang Anda ketahui, kami meminta Anda tutorial Wich yang Anda ingin melihat di yensdesign dan seperti yang saya katakan, Anda dapat mengirimkan lebih banyak saran dan masukan di forum kami.
Pada saran ini adalah tentang bagaimana untuk memvalidasi bentuk di sisi server menggunakan PHP, sehingga dalam tutorial ini kita akan menggunakan PHP dan jQuery untuk memvalidasi semua bidang di kedua sisi:
Sisi client: Menggunakan javascript dengan jQuery . Sisi server: Menggunakan PHP.
Kami akan menggunakan ekspresi reguler dan jika Anda tidak tahu tentang mereka, Anda akan melihat segera kekuasaan mereka. Omong-omong, Anda dapat memeriksa sumber ini untuk mempelajari lebih lanjut tentang ekspresi reguler dalam bahasa yang berbeda.
Pada akhir tutorial, kita akan mendapatkan contoh kerja akhir nyata yang akan memvalidasi bidang kami dengan / tanpa javascript diaktifkan, tapi selalu memanfaatkan Validasi sisi server.
Mari selami tutorial!
Langkah 1: Pendekatan Pertama Layout xHTML
Dalam hal ini kita akan membuat tata letak HTML sederhana yang menunjukkan formulir kami. Dalam pendekatan pertama HTML akan terlihat seperti ini:
<DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"!> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> yensdesign.com - Validasi Formulir menggunakan PHP dan jQuery
</ title> <link rel="stylesheet" href="css/general.css" type="text/css"
media="screen" /> </ Head> <body>
<A id = "logo" title = "Pergi ke yensdesign.com!" href = "http://www.yensdesign.com"> <img src="css/images/logo.jpg" alt="yensdesign.com" /> </ a>
<div id="container"> <h1> Proses registrasi </ h1>
<div id="error"> <ul>
<li> <strong> Nama tidak valid: </ strong> Kami ingin nama dengan lebih dari 3 huruf </ li>!
<li> <strong> valid E-mail: </ strong>
koboi Stop! Ketik e-mail silakan berlaku </ Li>
<li> <strong> Sandi tidak valid: </ strong> Password tidak cocok atau tidak valid </ li>!
<li> <strong> pesan Ivalid: </ strong> Ketik pesan dengan setidaknya dengan 10 huruf </ li>
</ Ul> </ Div> <div id="error" class="valid">
<ul> <li> <strong> Selamat! </ strong>
Semua bidang yang OK </ Li> </ Ul>
</ Div>
<form method="post" id="customForm" action=""> <div>
<label for="name"> Nama </ label> <input id="name" name="name" type="text" /> <span id="nameInfo"> Siapa nama Anda </ span>?
</ Div> <div>
<label for="email"> E-mail </ label> <input id="email" name="email" type="text" /> <span id="emailInfo"> E-mail Valid silahkan,
Anda akan perlu untuk login! </ span> </ Div> <div>
<label for="pass1"> Sandi </ label> <input id="pass1" name="pass1" type="password"
/> <span id="pass1Info"> Setidaknya 5 karakter:
huruf, angka, dan '_' </ span> </ Div> <div>
<label for="pass2"> Konfirmasi Kata Sandi </ label>
<input id="pass2" name="pass2" type="password" />
<span id="pass2Info"> Confirm password </ span>
</ Div> <div>
<label for="message"> Pesan </ label> <textarea id="message" name="message" cols=""
rows=""> </ textarea> </ Div> <div>
<input id="send" name="send" type="submit" value="Send" />
</ Div> </ Form>
</ Div> <script type="text/javascript" src="jquery.js"> </ script> <script type="text/javascript" src="validation.js"> </ script>
</ Body> </ Html>
Seperti yang Anda lihat kami telah membuat semua divisi yang akan muncul (atau tidak) dalam tutorial kami. Beberapa divisi tersebut tidak akan terlihat sebagai default, tapi kami akan menambahkan beberapa conditional di PHP dan CSS untuk mendapatkan ini. Jadi ini adalah divisi:
Kontainer #: berisi semua divisi
Kesalahan #: berisi daftar kesalahan mungkin setelah mengirimkan formulir
# Error.valid: berisi "selamat frase" jika semua itu OK
# CustomForm: berisi formulir kami
Jadi sekarang kita memiliki kami xHTML tata letak siap mari kita tambahkan beberapa gaya dengan CSS.
Langkah 2: Menambahkan gaya dengan CSS
Ini akan menjadi orang yang cepat, hanya mengambil melihat kode general.css:
@ CHARSET "UTF-8"; / ******* RESET UMUM ******* / html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pra, sebuah, abbr, akronim, alamat, besar, mengutip, kode, del, DFN, em, font, img, ins, kbd, q, s, Samp, kecil, pemogokan, kuat, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, bentuk, label, legenda, meja, keterangan, tbody, tfoot, THead, tr, th, td { border: none 0pt; font-family: mewarisi;
font-size: 100%; font-style: mewarisi; font-weight: mewarisi; margin: 0pt; padding: 0pt; vertical-align: dasar; } body {
background: # fff; line-height: 14px; font-size: 12px; font-family: Arial, Verdana, Helvetica, sans-serif; margin: 0pt; kursor: default; overflow: hidden;
} html, body {
height: 100%; text-align: center;
} . Jelas {
clear: both; height: 0; visibility: hidden; display: block;
} a {
text-decoration: none; } kuat {
font-weight: 700; } / ******* RESET UMUM ******* / h1 {
font-weight: 700; font-size: 18px; line-height: 1.2em; border-bottom: 1px dotted # 6b9ef1; color: # 5f95ef; margin-bottom: 1em;
} / ******* LOGO ******* / # Logo {
margin-top: 1em; display: block;
} / ******* / LOGO ******* / / ******* CONTAINER ******* / # Kontainer {
width: 600px; margin: 40px auto; text-align: kiri;
} / ******* / CONTAINER ******* / / ******* FORMULIR ******* / # CustomForm {
padding: 0 10px 10px;
} # CustomForm label {
display: block; color: # 797.979; font-weight: 700; line-height: 1.4em;
} # CustomForm masukan {
width: 220px; padding: 6px; color: # 949.494; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 11px; border: 1px solid # cecece;
} # CustomForm input.error {
background: # f8dbdb; border-color: # e77776;
} # CustomForm textarea {
width: 550px; height: 80px; padding: 6px; color: # adaeae; font-family: Arial, Verdana, Helvetica, sans-serif; font-style: italic; font-size: 12px; border: 1px solid # cecece;
} # CustomForm textarea.error {
background: # f8dbdb; border-color: # e77776;
} # CustomForm div {
margin-bottom: 15px; } # CustomForm div rentang {
margin-left: 10px; color: # b1b1b1; font-size: 11px; font-style: italic;
} # CustomForm div span.error {
color: # e46c6e; } # # CustomForm kirim {
background: # 6f9ff1; color: # fff; font-weight: 700; font-style: normal; border: 0; kursor: pointer;
} # # CustomForm kirim: hover {
background: # 79a7f1; } # Error {
margin-bottom: 20px; border: 1px solid # efefef;
} # Error ul {
Daftar-style: persegi; padding: 5px; font-size: 11px;
} # Error ul li {
Daftar-style-position: inside; line-height: 1.6em;
} # Error ul li {yang kuat
color: # e46c6d; } # Error.valid ul li {yang kuat
color: # 93d72e; } / ******* / FORMULIR ******* /
Seperti biasa kami menggunakan potongan ulang keren kami CSS dan menambahkan beberapa bagian yang menarik dengan tutorial tertentu.
Hanya melihat bahwa kita telah mendefinisikan beberapa kelas kesalahan yang akan kita gunakan dalam. jQuery bagian untuk membuat tutorial kami pengguna
sedikit lebih dingin dan ramah
Selanjutnya bagian, validasi javascript!
Langkah 3: Validasi di sisi client dengan jQuery
Ya guys, karena tidak bisa kalau tidak kita akan menggunakan jQuery untuk membuat bagian validasi di sisi client. Kami akan menambahkan / menghapus beberapa kelas kesalahan. Untuk membuat formulir kami sedikit lebih intuitif bagi pengguna akhir.
Jadi pertama-tama, ingatlah bahwa seluruh kode berikut ini akan berada di $ (dokumen) siap () dari jQuery dan. Semua akan menjadi bagian dari file javascript validation.js bernama (asli, eh?).
Jadi mari kita simpan referensi ke beberapa elemen DOM yang sering kita akan:
/ / Global yang vars var form = $ ("# customForm"); var name = $ ("# nama"); var nameInfo = $ ("# nameInfo"); var email = $ ("# email"); var emailInfo = $ ("# emailInfo"); var pass1 = $ ("# pass1"); var pass1Info = $ ("# pass1Info"); var pass2 = $ ("# pass2"); var pass2Info = $ ("# pass2Info"); var message = $ ("# message");
Seperti yang Anda mungkin melihat, semua referensi adalah bentuk terkait.
Sekarang mari kita mendefinisikan validasi kami fungsi yang akan membantu kita dalam proses validasi:
validateEmail (): kita hanya memungkinkan email yang sah!
validateName (): kami hanya mengizinkan nama dengan lebih dari 3 huruf
validatePass1 (): kita hanya mengijinkan password dengan setidaknya 5 karakter
validatePass2 (): kita hanya memungkinkan jika password yang sama
validateMessage (): kita hanya pesan dengan lebih dari 10 huruf
Fungsi validateName () { / / Jika itu TIDAK berlaku
if (name.val () panjang <4.) { name.addClass ("error"); nameInfo.text ("Kami ingin nama dengan lebih dari 3 huruf!"); nameInfo.addClass ("error"); return false;
} / / Jika berlaku else {
name.removeClass ("error"); nameInfo.text ("Siapa nama Anda?"); nameInfo.removeClass ("error"); return true;
} } Fungsi validatePass1 () {
var a = $ ("# password1"); var b = $ ("# password2");
/ / Itu TIDAK berlaku if (pass1.val () panjang <5.) {
pass1.addClass ("error"); pass1Info.text ("Ey Ingat: Setidaknya 5 karakter: huruf,
angka, dan '_'"); pass1Info.addClass ("error"); return false;
} / / Itu berlaku else {
pass1.removeClass ("error"); pass1Info.text ("Setidaknya 5 karakter: huruf, angka, dan
'_'"); pass1Info.removeClass ("error"); validatePass2 (); return true;
} } Fungsi validatePass2 () {
var a = $ ("# password1"); var b = $ ("# password2"); / / TIDAK berlaku if (pass1.val () = pass2.val! ()) {
pass2.addClass ("error"); pass2Info.text ("Password tidak cocok!"); pass2Info.addClass ("error"); return false;
} / / Berlaku else {
pass2.removeClass ("error"); pass2Info.text ("Confirm password"); pass2Info.removeClass ("error"); return true;
} } Fungsi validateMessage () {
/ / Itu TIDAK berlaku if (message.val () panjang <10.) {
message.addClass ("error"); return false;
} / / Itu berlaku else {
message.removeClass ("error"); return true;
} }
Seperti yang Anda lihat, kami menambahkan dan menghapus kesalahan dan kelas. Mengubah nilai teks jika diperlukan untuk menunjukkan pengguna apa bidang yang salah.
Sekarang kita telah mendefinisikan semua fungsi validasi, kita hanya perlu untuk mengelola kegiatan. Di sini Anda memiliki apa yang akan kita lakukan:
Validasi kolom nama dalam: blur dan keyup peristiwa.
Validasi bidang email di: blur acara.
Memvalidasi kolom password di: blur dan keyup peristiwa.
Validasi kolom pesan di: blur, dan acara keyup.
Memvalidasi semua bidang di: submit event bentuk.
Oleh karena itu kode akan menjadi:
/ / Pada blur name.blur (validateName); email.blur (validateEmail); pass1.blur (validatePass1);
pass2.blur (validatePass2); / / Pada tekan tombol name.keyup (validateName); pass1.keyup (validatePass1); pass2.keyup (validatePass2); message.keyup (validateMessage); / / Pada Mengirimkan form.submit (function () {
if (validateName () & validateEmail () & validatePass1 () & validatePass2 () & validateMessage ())
kembali benar lain
return false; });
Seperti yang Anda lihat, itu sangat mudah untuk mengontrol apa saja yang kita inginkan dengan menggunakan jQuery dan beberapa fungsi. Jadi sekarang kita telah melakukan situs cliend, mari kita pindah ke sisi server!
Langkah 4: Validasi di sisi server dengan PHP
Sekarang bahwa kita memiliki sisi client dilakukan, mari kita gunakan kekuatan PHP untuk menyelesaikan tutorial kami.
Beberapa dari Anda mungkin berpikir bahwa kita tidak perlu validasi sisi server, tetapi itu adalah kesalahan besar berpikir tentang hal itu. Ingatlah bahwa kita tidak percaya pada sisi klien. Dalam contoh: pengguna dapat menonaktifkan javascript pada browser mereka dan mengirimkan nilai-nilai yang tidak diinginkan.
Jadi pertama-tama kita harus membuat file baru php bernama validation.php yang akan berisi validasi kami fungsi ditulis dalam PHP.:
<? Php Fungsi validateName ($ nama) {
/ / Jika itu TIDAK berlaku if (strlen ($ nama) <4)
return false; / / Jika berlaku lain
return true; }
Fungsi validateEmail ($ email) { kembali ereg ("^ [a-zA-Z0-9] + [a-zA-Z0-9_-] + @ [a-zA-Z0-9]
+ [a-zA-Z0-9 -.] + [ a-zA-Z0-9] + [az] {2,4} $ ", $ email).; } Fungsi validatePasswords ($ pass1, pass2 $) {
/ / Jika TIDAK MATCH if (strpos ($ pass1, '') == false!)
return false; / / Jika berlaku return $ pass1 == $ pass2 & & strlen ($ pass1)> 5;
} Fungsi validateMessage ($ pesan) {
/ / Jika itu TIDAK berlaku if (strlen ($ pesan) <10)
return false; / / Jika berlaku lain
return true; }
?>
Seperti yang Anda lihat kita telah mendefinisikan 4 fungsi:
validateName (): memeriksa apakah nama setidaknya memiliki 4 huruf
validateEmail (): memeriksa apakah email valid
validatePasswords (): memeriksa apakah password yang sama dan memiliki minimal 5 huruf
validateMessage (): memeriksa apakah pesan memiliki setidaknya 10 huruf
Ini hampir done guys, kita hanya perlu menambahkan beberapa conditional ke index.php kami. Jika Anda ingat, kita mengatakan bahwa kita akan menambahkan beberapa conditional di PHP, jadi saatnya untuk melakukan itu:
Kami akan menampilkan # divisi kesalahan hanya jika setidaknya ada satu kesalahan.
Kami akan menampilkan # divisi error.valid hanya jika semua bidang yang OK.
Jadi di sini Anda memiliki tata letak index.php akhir:
<? Php require_once ("validation.php");
?>
<DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"!> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> yensdesign.com - Validasi Formulir menggunakan PHP dan jQuery
</ title> <link rel="stylesheet" href="css/general.css" type="text/css"
media="screen" /> </ Head> <body>
<A id = "logo" title = "Pergi ke yensdesign.com!" href = "http://www.yensdesign.com"> <img src="css/images/logo.jpg" alt="yensdesign.com" /> </ a>
<div id="container"> <h1> Proses registrasi </ h1>
<If (isset ($ _POST ['kirim']) & amp;? Amp; amp; amp; amp; amp; amp; & amp; amp; amp; amp; amp; amp; amp; (validateName ($ _POST ['nama']) |! | validateEmail ($ _POST ['email']) |! | validatePasswords ($ _POST ['pass1'], $ _POST ['pass2']) |! |! validateMessage ($ _POST ['pesan']))):?>
<div id="error"> <ul>
<If (validateName ($ _POST ['nama'])!):??>
<li> <strong> Nama tidak valid: </ strong> Kami ingin nama dengan lebih dari 3 huruf </ li>!
<Endif??> <Jika? (ValidateEmail ($ _POST
['email'])!):?> <li> <strong> valid E-
mail: </ strong> koboi Stop! Ketik e-mail silakan berlaku </ Li> <Endif??> <If (validatePasswords ($ _POST
['pass1'], $ _POST ['pass2'])!):??>
<li> <strong> Sandi tidak valid: </ strong> Password tidak cocok atau tidak valid </ li>!
<Endif??> <Jika? (ValidateMessage ($
_POST ['pesan'])!):?> <li> <strong> pesan
Ivalid: </ strong> Ketik pesan dengan setidaknya dengan 10 huruf </ li> <Endif?>
</ Ul> </ Div>
<Elseif (isset ($ _POST ['kirim'])):??> <div id="error" class="valid">
<ul> <li> <strong> Selamat! </
strong> Semua bidang yang OK </ Li> </ Ul>
</ Div> <Endif??>
<form method="post" id="customForm" action=""> <div>
<label for="name"> Nama </ label> <input id="name" name="name" type="text" /> <span id="nameInfo"> Siapa nama Anda </ span>?
</ Div> <div>
<label for="email"> E-mail </ label> <input id="email" name="email" type="text" /> <span id="emailInfo"> E-mail Valid silahkan,
Anda akan perlu untuk login! </ span> </ Div> <div>
<label for="pass1"> Sandi </ label> <input id="pass1" name="pass1" type="password"
/> <span id="pass1Info"> Setidaknya 5 karakter:
huruf, angka, dan '_' </ span> </ Div> <div>
<label for="pass2"> Konfirmasi Kata Sandi </ label>
<input id="pass2" name="pass2" type="password" />
<span id="pass2Info"> Confirm password </ span>
</ Div> <div>
<label for="message"> Pesan </ label> <textarea id="message" name="message" cols=""
rows=""> </ textarea> </ Div> <div>
<input id="send" name="send" type="submit" value="Send" />
</ Div> </ Form>
</ Div> <script type="text/javascript" src="jquery.js"> </ script> <script type="text/javascript" src="validation.js"> </ script>
</ Body> </ Html>
Seperti yang Anda lihat kita telah memasukkan file validation.php sebelum memanggil fungsi-fungsi validasi dan menambahkan beberapa panggilan ke fungsi validasi kami untuk memeriksa field saat bentuk yang submited.
Kami telah menggunakan PHP notasi singkat dalam conditional untuk menjaga HTML lebih bersih dan lebih mudah dibaca.
Kami menunjukkan kesalahan / "selamat frase" sesuai kebutuhan dan sekarang Anda hanya perlu tahu apa yang Anda lakukan dengan hal ini nilai-nilai
divalidasi
Langkah 5: Pengujian Formulir kami divalidasi!
Itu semua orang, saya harap Anda merasa berguna dan menggunakan tutorial ini untuk meningkatkan website Anda sedikit lebih.
Ingat bahwa jika Anda ingin mencoba sisi server, Anda perlu menonaktifkan javascript di browser web Anda. Pada Firefox itu di Tools> Options> hapus centang Konten "Enable Javascript" kotak centang.
Anda dapat mencoba secara online tutorial di sini untuk melihat bagaimana ini bekerja dan download di sini semua sumber .
Ingat bahwa Anda dapat memecahkan keraguan Anda di forum kami dan mengikuti os di Twitter untuk tahu lebih banyak tentang apa yang kita lakukan di setiap saat!
Sampai jumpa di tutorial berikutnya dan ingat bahwa kami ingin Anda sarankan tutorial untuk menulis!
Satu hal lagi ...
Dijamin lulus 642-873 ujian dengan menggunakan 646-363 sumber daya ujian disiapkan oleh 83-640 profesional bersertifikat di certkiller.