Lompat ke konten Lompat ke sidebar Lompat ke footer

Kelas Formulir PHP dengan Generator HTML dan Validasi JavaScript: pembuatan dan validasi formulir HTML.

Php coding examp


 

Kelas yang menghasilkan formulir HTML yang mendukung:


- Beberapa masukan dapat saling berhubungan sedemikian rupa sehingga kejadian sisi klien yang terjadi pada satu masukan dapat memicu tindakan pada konteks masukan lainnya. Pengembang dapat menggunakan dukungan interkoneksi input tanpa menulis kode Javascript.
- Dapat diperpanjang dengan jenis baru kelas plug-in kontrol input.
- Kelas plugin masukan khusus dapat digunakan untuk mendukung penanganan acara situs klien di sisi server tanpa mengirimkan formulir atau menggambar ulang seluruh halaman formulir
- Beberapa kelas plugin kontrol tersedia:
* Pengiriman formulir berbasis AJAX (tanpa memuat ulang seluruh halaman)
* Input teks pelengkap otomatis
* Pilih lokasi pada peta menggunakan Google Maps API
* Input tanggal kalender
* Tes CAPTCHA untuk mencegah akses otomatis oleh robot
* Input pilih yang ditautkan untuk mengganti opsi pilihan ketika nilai input lain berubah. Jumlah tak terbatas yang dipilih dapat ditautkan dalam kaskade. Subkelas plug-in tambahan disediakan untuk mengambil grup opsi dari database MySQL atau banyak database SQL lainnya menggunakan Metabase PEAR :: MDB2 API lapisan abstraksi database PHP
* Kelola animasi yang menerapkan efek visual ke elemen formulir halaman, seperti: fade-in , fade-out, tampilkan, sembunyikan, perbarui konten, dll ..
- keluaran yang sesuai dengan XHTML.
- Muat nilai bidang formulir yang dikirimkan bahkan dengan opsi register_globals Mati dan lepaskan garis miring saat opsi magic_quotes_gpc Aktif.
- Dukungan navigasi keyboard:
* Lampiran label dengan kunci aktivasi ke setiap bidang formulir.
* Tab indeks urutan navigasi.
- Validasi bidang sisi server bawaan (berbasis PHP) dan sisi klien (Javascript 1.0 atau lebih baik) untuk:
* Alamat email
* Nomor kartu kredit (Visa, Mastercard, American Express, Discover, Diners Club, Carte Blanche, enRoute, JCB, salah satunya atau bahkan ditentukan oleh bidang pilih).
* Ekspresi reguler.
* Lapangan tidak kosong.
* Kolom sama dengan yang lain (berguna untuk kolom konfirmasi kata sandi).
* Kolom berbeda dari yang lain (berguna untuk kolom pengingat yang tidak boleh sama dengan sandi sebenarnya).
* Seperti yang ditetapkan (untuk kotak centang, tombol radio dan pilih beberapa bidang).
* Sebagai bilangan bulat (dengan batasan jangkauan).
* Sebagai angka floating point (dengan batasan jangkauan).
* Programmer mendefinisikan fungsi validasi klien dan server.
- Sorot bidang tidak valid yang membuat mereka memiliki gaya CSS yang berbeda
- Pencegahan serangan keamanan dengan secara opsional membuang nilai tidak valid yang diteruskan di bidang yang tidak dapat diedit oleh pengguna tetapi mungkin dipalsukan oleh penyerang.
- Opsi untuk menentukan nilai yang, bila digunakan dalam suatu bidang, diterima tanpa melakukan validasi apa pun yang ditentukan untuk bidang tersebut.
- Kemampuan untuk menghentikan pengguna mengirimkan formulir lebih dari sekali secara tidak sengaja.
- Validasi sub formulir (validasi hanya set bidang yang lebih kecil tergantung pada tombol kirim yang digunakan).
- Komposisi dan pembuatan keluaran HTML formulir dengan bidang yang ditampilkan sebagai dapat diakses sepenuhnya atau dalam mode hanya-baca.
- Generasi fungsi Javascript (berguna untuk mengatur ke halaman acara ONLOAD):
* Atur fokus input ke bidang.
* Pilih teks bidang.
* Atur fokus input dan pilih teks bidang.
* Mengaktifkan dan menonaktifkan kolom input
- Kapitalisasi otomatis dari teks kolom:
* Huruf besar.
* Huruf kecil.
* Inisial kata
- Penggantian ekspresi bidang teks untuk melakukan penyesuaian seperti pemangkasan spasi atau nilai pelengkapan otomatis berdasarkan aturan yang ditentukan oleh ekspresi reguler
- Buat formulir dengan templat menggunakan file HTML biasa dengan kode PHP yang disematkan atau menggunakan mesin templat Smarty dengan plugin pra-filter yang disediakan
- Dll

Contoh Formulir PHP

Sertakan kelas formulir secara langsung atau gunakan vendor / autoload.php jika Anda menginstalnya dengan komposer.

require("forms.php");

Buat objek formulir.

$form=new form_class;

Tentukan nama formulir yang akan digunakan misalnya dalam kode validasi Javascript yang dibuat oleh kelas.

$form->NAME="subscription_form";

Gunakan metode GET jika Anda ingin melihat nilai yang dikirimkan dalam format pemrosesan URL, atau POSTING sebaliknya.

$form->METHOD="POST";

Membuat formulir ditampilkan dan juga diproses oleh skrip ini.

$form->ACTION="";

Tentukan fungsi keluaran debug yang benar-benar Anda inginkan untuk menampilkan kesalahan pemrograman apa pun.

$form->debug="trigger_error";

Tentukan pesan peringatan untuk ditampilkan dengan kode Javascript ketika pengguna mencoba mengirimkan formulir ini lagi dari halaman yang sama.

$form->ResubmitConfirmMessage=
    "Are you sure you want to submit this form again?";

Keluarkan nilai kata sandi yang ditetapkan sebelumnya.

$form->OutputPasswordValues=1;

Keluarkan beberapa nilai opsi pilihan yang dipisahkan oleh jeda baris

$form->OptionsSeparator="<br />\n";

Keluarkan semua kesalahan validasi sekaligus.

$form->ShowAllErrors=1;

Kelas CSS untuk diterapkan ke semua masukan yang tidak valid. Setel ke string yang tidak kosong untuk menentukan kelas CSS masukan yang tidak valid

$form->InvalidCLASS='invalid';

Gaya untuk diterapkan ke semua masukan yang tidak valid saat Anda hanya ingin mengganti beberapa atribut gaya, alih-alih mengganti kelas CSS. Setel ke string tidak kosong untuk menentukan atribut gaya masukan yang tidak valid

$form->InvalidSTYLE='background-color: #ffcccc; border-color: #000080';

Teks untuk menambahkan dan menambahkan pesan kesalahan validasi.

$form->ErrorMessagePrefix="- ";
$form->ErrorMessageSuffix="";

Tentukan properti bidang formulir meskipun mungkin tidak ditampilkan.

$form->AddInput(array(
    "TYPE"=>"text",
    "NAME"=>"email",
    "ID"=>"email",
    "MAXLENGTH"=>100,
    "Capitalization"=>"lowercase",
    "ValidateAsEmail"=>1,
    "ValidationErrorMessage"=>"It was not specified a valid e-mail address.",
    "LABEL"=>"<u>E</u>-mail address",
    "ACCESSKEY"=>"E"
));

$form->AddInput(array(
    "TYPE"=>"submit",
    "ID"=>"button_subscribe",
    "VALUE"=>"Submit subscription",
    "ACCESSKEY"=>"u"
));

Validasi Formulir PHP

Muat nilai input formulir akhirnya dari formulir yang dikirimkan.

$form->LoadInputValues($form->WasSubmitted("doit"));

Kosongkan larik yang akan mencantumkan nilai dengan bidang tidak valid setelah validasi.

$verify=array();

Periksa apakah itu telah dikirim dan bukan untuk ditampilkan untuk pertama kalinya.

if($form->WasSubmitted())
{

Oleh karena itu kita perlu memvalidasi nilai formulir yang dikirimkan.

    if(($error_message=$form->Validate($verify))=="")
    {

Ini valid, setel variabel flag $ doit ke 1 untuk memberi tahu formulir siap diproses.

        $doit=1;

    }
    else
    {

Ini tidak valid, setel tanda $ doit ke 0 dan encode pesan kesalahan yang dikembalikan untuk menghindari karakter khusus HTML apa pun.

        $doit=0;
        $error_message=nl2br(HtmlSpecialChars($error_message));
    }
}
else
{

Formulir tersebut baru pertama kali ditampilkan, sehingga belum siap untuk diproses dan tidak ada pesan kesalahan yang ditampilkan.

    $error_message="";
    $doit=0;
}

if($doit)
{

Formulir siap untuk diproses, cukup keluarkan lagi sebagai hanya baca untuk menampilkan nilai yang dikirimkan. Skrip pemrosesan formulir nyata biasanya dapat melakukan hal lain seperti menyimpan nilai formulir dalam database.

  $form->ReadOnly=1;
}

Jika formulir tidak dikirimkan atau tidak valid, jadikan halaman ONLOAD acara memberikan fokus ke bidang formulir pertama atau bidang pertama tidak valid.

if(!$doit)
{
    if(strlen($error_message))
    {

Jika ada setidaknya satu bidang dengan nilai tidak valid, dapatkan nama bidang pertama karena kesalahan untuk membuatnya mendapatkan fokus input saat halaman dimuat.

        Reset($verify);
        $focus=Key($verify);
    }
    else
    {

Buat kolom email mendapatkan input fokus saat halaman dimuat jika sebelumnya tidak ada error validasi.

        $focus='email';
    }

Hubungkan formulir ke lapangan untuk mendapatkan fokus input saat halaman dimuat.

    $form->ConnectFormToInput($focus, 'ONLOAD', 'Focus', array());
}

Output Contoh Formulir PHP HTML

$onload = HtmlSpecialChars($form->PageLoad());

?><!DOCTYPE>
<html>
<head>
<title>Test for Manuel Lemos' PHP form class</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style type="text/css"><!--
    .invalid { border-color: #ff0000; background-color: #ffcccc; }
// --></style>
</head>
<body onload="<?php echo $onload; ?>" bgcolor="#cccccc">
<h1>Test for Manuel Lemos' PHP form class</h1>
<hr />

Buat keluaran formulir dengan menyertakan templat formulir HTML dengan kode PHP yang diselingi dengan panggilan untuk menyisipkan bagian bidang masukan formulir di HTML tata letak.

$form->StartLayoutCapture();
$title="Form class test";
$body_template="form_body.html.php";
require("templates/form_frame.html.php");
$form->EndLayoutCapture();

Keluarkan formulir menggunakan fungsi bernama Output.

$form->DisplayOutput();

?></body>
</html>
Full script

Posting Komentar untuk "Kelas Formulir PHP dengan Generator HTML dan Validasi JavaScript: pembuatan dan validasi formulir HTML."