Setelah berhasil mengambil dan menampilkan nilai dari form, hal berikutnya yang harus kita lakukan terhadap data tersebut adalah melakukan proses validasi. Proses validasi dilakukan terhadap nilai yang dimasukkan melalui form.
Dalam tutorial kali ini kita akan membahas Cara Membuat Validasi Form dengan PHP menggunakan fungsi isset() dan fungsi empty().
Pentingnya Melakukan Validasi Nilai Form
Nilai yang telah diinput oleh user atau pengunjung web, tidak bisa begitu saja di simpan langsung ke dalam database. Karena kita tidak tahu apakah nilai tersebut telah sesuai dengan nilai yang kita kehendaki. Misalkan apakah nilai tersebut harus berupa angka, atau hanya bisa berupa huruf, atau apakah hanya bisa diinput dalam range tertentu saja.
Dalam kasus yang ekstrim, seorang user bisa saja memasukkan kode script atau tag HTML yang bisa merusak situs kita, hal ini dikenal dengan Cross-site Scripting. Sebuah proses validasi nilai merupakan hal yang sangat penting dalam merancang form. Khusus untuk validasi mencegah Cross-site Scripting dan juga HTML injection ini akan saya bahas pada tutorial form PHP berikutnya.
Dalam pembahasan tutorial validasi form ini, saya masih menggunakan contoh halaman form.html yang pernah kita buat pada tutorial sebelumnya, berikut adalah kode HTML untuk halaman form.html:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Belajar Form PHP</title> </head> <body> <h2>Tutorial Belajar Form HTML - PHP </h2> <form action="proses.php" method="get"> Nama: <input type="text" name="nama" /> <br /> E-Mail: <input type="text" name="email" /> <br /> <input type="submit" value="Proses Data" > </form> </body> </html>
Memeriksa Ketersediaan Variabel Form dengan Fungsi isset()
Validasi pertama yang paling sederhana dan 'hampir' selalu ada dalam tiap proses validasi form dalam PHP adalah memeriksa apakah objek form tersebut sudah tersedia atau tidak. Sebagai contoh sederhananya: apakah variabel $_GET['nama'] tersedia untuk diproses atau tidak.
Proses memeriksa 'ketersediaan' variabel ini menjadi penting karena PHP akan mengeluarkan pesan peringatan jika kita mengakses nilai sebuah variabel yang belum didefenisikan terlebih dahulu.
Sebagai contoh, jika kita mengakses langsung halaman proses.php (tanpa melalui halaman form.html) dan tanpa menambahkan URL (seperti pembahasan pada tutorial Perbedaan Metode Pengiriman Form GET dan POST) PHP akan menampilkan pesan peringatan seperti berikut ini:
Notice: Undefined index adalah pesan error yang terjadi karena kita langsung menampilkan variabel $_GET['nama'] dan $_GET['email'] yang memang belum diset sebelumnya.
Untuk memeriksa apakah sebuah objek form telah didefenisikan atau telah di-set sebelumnya, kita bisa menggunakan fungsi bawaan PHP: isset(). Fungsi isset() akan menghasilkan nilai true jika sebuah variabel telah didefenisikan, dan false jika variabel tersebut belum dibuat.
Sebagai langkah antisipasi, saya akan membuat proses validasi untuk menangani variabel $_GET yang belum di-set, berikut adalah modifikasi file proses.php:
<?php if (isset($_GET['nama'])) { echo $_GET['nama']; } Â echo "<br />"; Â if (isset($_GET['email'])) { echo $_GET['email']; } ?>
Sekarang, file proses.php tidak akan menghasilkan error apabila diakses tanpa melalui form.html. Namun perubahan kode tersebut tidak terlalu berguna karena tidak memberikan pesan error yang jelas. Berikut adalah modifikasi file proses.php agar lebih informatif:
<?php if (isset($_GET['nama']) AND isset($_GET['email'])) { echo $_GET['nama']; echo $_GET['email']; } else { echo "Maaf, anda harus mengakses halaman ini dari form.html"; } ?>
Pada kode PHP diatas saya mengharuskan nilai $_GET['nama'] dan $_GET['email'] tersedia, baru nilai ditampilkan, namun jika tidak ada, akan ditampilkan pesan bahwa halaman ini hanya bisa diakses dari form.html.
Memeriksa Apakah Variabel Form Telah Diisi
Fungsi isset() yang kita bahas sebelumnya hanya memeriksa apakah sebuah objek form ada atau tidak. Fungsi isset() tetap bernilai true meskipun user tidak mengisi form sama sekali (variabel form bernilai kosong, namun variabel tersebut dianggap telah di-set).
Untuk memeriksa apakah sebuah objek form telah diisi atau tidak, kita bisa menggunakan fungsi: empty().
Fungsi empty() akan menghasilkan nilai false jika sebuah variabel telah diisi, dan bernilai true jika variabel tersebut belum diisi. Dengan menggunakan stuktur IF dan fungsi empty(), kita bisa membuat logika validasi objek form mana saja yang dianggap perlu (harus diisi) dan mana yang boleh dikosongkan. Dan kemudian menampilkan pesan error yang sesuai.
Sebagai contoh, saya akan memodifikasi file proses.php agar menampilkan pesan error jika kotak input nama tidak diisi. Berikut adalah kode PHP pada halaman proses.php:
<?php if (isset($_GET['nama']) AND isset($_GET['email'])) { $nama=$_GET['nama']; $email=$_GET['email']; } else { die("Maaf, anda harus mengakses halaman ini dari form.html"); } Â if (!empty($nama)) { echo "Nama: $nama <br /> Email: $email"; } else { die("Maaf, anda harus mengisi nama"); } ?>
Dalam kode PHP diatas, saya memodifikasi beberapa bagian kode program.
Pada logika IF pertama, saya melakukan pengecekan apakah variabel $_GET['nama'] dan $_GET['email'] tersedia atau tidak. Jika tersedia maka pindahkan nilainya ke variabel $nama dan $email agar lebih mudah untuk diproses. Namun jika tidak, fungsi die() akan menghentikan proses dan menampilkan pesan kesalahan.
Pada logika IF kedua, saya memeriksa apakah variabel $nama kosong atau tidak dengan fungsi !empty(). Fungsi !empty($nama) akan menghasilkan nilai true hanya jika variabel $nama tidak kosong (perhatikan tanda ! sebagai pembalik logika empty()). Namun jika $nama ternyata kosong (tidak diisi), maka tampilkan pesan kesalahan.
Menyeleksi Tipe Data Objek Form
Setelah objek form dipastikan tersedia, tidak kosong, validasi berikutnya yang biasanya dilakukan adalah memastikan tipe data dan range data yang diinput oleh user.
Untuk mengecek tipe data sebuah variabel, PHP menyediakan beberapa fungsi tergantung tipe datanya, yakni fungsi is_string(), is_int(),is_float(),is_numeric(),is_bool(), is_array(), dan is_object(). Sesuai dengan namanya, masing-masing fungsi tersebut akan mengecek tipe data dari variabel yang ditest.
Diantara fungsi-fungsi diatas, fungsi is_numeric() mungkin butuh sedikit penjelasan. Fungsi is_numeric() akan mengecek apakah sebuah tipe data merupakan angka baik itu float atau integer.
Khusus objek form variabel angka seperti umur, biasanya selain menyeleksi apakah nilainya berupa angka integer, kita mungkin juga menambahkan aturan bahwa nilai umur harus diatas 17 tahun. Untuk menambahkan fungsi ini, fungsi is_int() dapat dikombinasikan dengan struktur IF.
Sebagai contoh saya akan menambahkan validasi untuk tag input nama bahwa nama tidak boleh diisi dengan angka. Untuk keperluan ini saya akan menggunakan fungsi is_numeric(). Berikut adalah modifikasi file proses.php:
<?php if (isset($_GET['nama']) AND isset($_GET['email'])) { $nama=$_GET['nama']; $email=$_GET['email']; } else { die("Maaf, anda harus mengakses halaman ini dari form.html"); } Â if(empty($nama)) { die("Maaf, anda harus mengisi nama"); } else { if (is_numeric($nama)) { die("Maaf, nama harus berupa huruf"); } else { echo "Nama: $nama <br /> Email: $email"; } } ?>
Dalam kode diatas, saya menambahkan 1 lagi logika IF untuk menyeleksi apakah variabel $nama berisi angka numerik (integer atau float). Jika $nama bertipe numerik, maka tampilkan pesan error.
Di dalam tutorial form PHP kali ini kita telah mempelajari cara menvalidasi nilai inputan form. Namun apa yang telah kita pelajari disini hanya sebagian kecil dari proses validasi yang sebenarnya harus dilakukan. Misalnya, untuk menfilter variabel $nama diatas, akan lebih cocok menggunakan regular expression daripada fungsi is_numeric(), namun yang penting kita telah bisa 'menangkap' cara pembuatan validasi form.
Di dalam tutorial berikutnya, masih berkaitan dengan proses validasi form, kita akan mempelajari tentang Cara Mencegah Cross-site Scripting dan HTML injection.
gan bisa bantu pasangin kode validasi untuk cegah sql injection di web saya ,plis gan mohon bantuannya
Maaf gan, ane belum bisa bantu untuk saat ini.
Kalau untuk website yang sudah live, kita mesti mempelajari codingnya lagi, n biasanya butuh waktu yang tidak sebentar, kalau agan dulu buat web dari hosting/programmer, sebaiknya menghubungi programmer atau bagian supportnya untuk menambahkan fitur tersebut… atau kalau menggunakan CMS, bisa dengan menambahkan plugin tertentu…
atau mungkin ada rekan2 lain yang bisa membantu :)
if (!empty($nama))
{
echo "Nama: $nama Email: $email";
}
else
{
die("Maaf, anda harus mengisi nama");
}
Mau tanya pak,
pada kode di atas apa ya perbedaan menggunakan die dan echo dalam menampilkan pesan errornya?
__terimasih__
Kalau menggunakan die, kode program PHP akan langsung berhenti dan tidak akan mengeksekusi kode program dibawahnya.
Sebagai contoh, bisa coba jalankan kode berikut:
Mudah2an bisa dipahami :)
Pak kalo perintah die sama or die sama gak ???
Kalau or die() itu berarti pakai kondisi or. Ini digunakan tergantung bagaimana logika programnya.
Mungkin bisa dibaca2 kembali tentang alur kondisi program, seperti "or" dan "and", serta perbedaannya…
tanya dikit senior…
saya terkadang mendapati penulisan "isset" seperti ini "!isset" jadi pakai tanda seru di depan isset….
mohon penjelasannya gan.
Trims before
Tanda seru itu adalah sebuah operator negasi, atau kebalikan. Misalnya $a=TRUE, maka !$a adalah FALSE.
Fungsi isset() digunakan untuk mengecek apakah sebuah variabel telah tersedia (sudah didefenisikan) atau belum. Biasanya hasil ini langsung digunakan dalam kondisi IF seperti contoh di tutorial ini. Hasilnya akan TRUE jika variabel yang dicek sudah tersedia, atau FALSE jika variabel tersebut belum tersedia.
Jika menggunakan !isset(), maka logika programnya dibalik. Berikut contohnya:
Mudah2an bisa dipahami :)
selama pagi, siang atau malam mas…, ane butuh bantuan sedikit…saya lagi sedang belajar2 nih…soal php mysql dan kondisinya…
Masalah : saya sedang membuat form dgn phprunner…(Membuat random text generator datestamp).
saya membuat sebuah kolom pada sebuah Form yang harusnya dimana dengan kondisi "jika kolom tersebut di isikan sebuah deretan nomor angka maka nilai angka tersebut akan dicatat/direkam pada filed dalam table mysql, NAMUN jika pada kolom tersebut dikosongkan maka fungsi random generator yang akan dicatat….ini contoh scriptnya mas pada phprunner
$sql="select no from acc";
$rs=CustomQuery($sql);
$data=db_fetch_array($rs);
$datestamp=date("YmdHis",time());
$values["stt_no"]="$datestamp";
return true;
jika saya mengisian script diatas,…. pada FORM jika dikosongkan hasilnya sudah sesuai harapan benar sudah disimpan $datestamp pada fieldnya…..
yang bingung…
gimana jika FORM tersebut di isi manual ???
dan bagaimana jika angaka yg diketik manual itu bisa tetep disimpan pada field table mysql ???
thanks before…
Wah, mohon maaf bgt gan, saya belum bisa bantu, soalnya belum pernah menggunakan phprunner. Mungkin rekan2 yang lain ada bisa membantu…
malam gan, ane mau nanya nih gimana caranya membuat pertanyaan di dalam php dan jawabannya tersimpan di table lain gan, contoh casenya di aplikasi survey, dimana semua pertanyaan akan ditampung ke tabel pertanyaan sedangkan jawaban di tampung di tabel jawaban..
best regards
Wah, cukup rumit ni gan… Untuk membuatnya harus menguasai HTML, PHP dan MySQL. Di duniailkom sudah ada tutorial untuk menghubungkan ketiganya, tapi memang harus membuat kode program sendiri jika ingin membuat aplikasi seperti itu.
gmn gan klo gunakan $_post gan…apa diganti aja $_getx..aq da ganti tp validasi tdk berfungsi..mohon pencerahanx gan…
Iya gan, kalau ingin menggunakan $_POST, tinggal di ganti saja, misalnya dari $_GET['nama'] menjadi $_POST['nama'].
Tapi pastikan atribut di form juga menggunakan method="post".
permisi , mau tanya kalo cara buat keterangan , contoh nya gini nama penerima kalau di isi akan muncul dengan sendirinya dengan keterangan 'oke' , dan kemudian kalau nama penerima belum di isi berarti keterangannya 'pinjam'.tolong bantuan nya ya min.
Walaupun kesannya simple, tapi sebenarnya ini cukup rumit. Apalagi jika ingin tampil realtime (tanpa refresh halaman), harus mengkombinasikan PHP dengan JavaScript :)
minta sarannya gan, buat newbie seperti saya kalo mau buat website cocoknya pake cms apa manual?
Langsung saya bahas di artikel tersendiri gan: Ingin Membuat Website, Haruskah Belajar Web Programming? Mudah2an dapat sedikit gambaran…
kalo dasar2nya html, css, javascript, php & mysql insyaallah saya tahu gan, sekarang juga lagi mempelajari php&mysql :D
jadi cms sama blogspot itu ga jauh beda atau bisa dibilang instant, betul ga gan? #cmiiw
Bisa dibilang seperti itu gan. Saat ini kebanyakan website juga dibuat dengan CMS. Cukup jarang website yang ditulis dari 0 sendiri, kecuali dibuat oleh web programmer yang lagi belajar :) atau dari perusahaan besar yang memang butuh fleksibilitas tinggi yang tidak bisa didapat dengan CMS.
CMS juga tidak hanya terbatas pada wordpress saja, untuk online shop ada prestashop, untuk wiki ada mediawiki, untuk forum ada phpBB atau vBulletin, dll.
kalo framework seperti ci, laravel dll gimana gan? apa bisa pake fw sekaligus pake cms
Ga bisa gan, karena bisa dikatakan CMS itu juga adalah framework yang lebih simpel. Jadi jika kita menggunakan wordpress, sebenarnya kita juga menggunakan framework wordpress. Kecuali di halaman/bagian lain website ingin menggunakan framework lain sih bisa saja. Misalnya halaman web utama menggunakan wordpress, tapi ketika user masuk ke forum, forum tersebut di buat dengan CI.
ogitu ya gan, thanks gan penjelasannya :D
Terimakasih tutorialnya.
Pertanyaan saya, bagaimana jika user hanya mengisi form isian dengan spasi/whitespace, apakah cukup dengan fungsi empty.
Saya mempunyai kasus tersebut dalam form yang sedang saya coba di lokal.
Terimakasih
Bisa sih mas, atau untuk lebih meyakinkan lagi bisa tambahkan fungsi trim(). Jadi seluruh spasi di awal dan akhir akan dihapus terlebih dahulu.
Jika form hanya diisi tab atau spasi, fungsi trim() akan menghasilkan string kosong (empty).
Baik, terimakasih penjelasannya. Saya coba menggunakan fungsi trim() ternyata cukup efektif mencegah pengisian spasi.
Senang bisa membantu :)
gan boleh minta bantuan buat script input hari dengan teks dari php?
misal : input "20 hari ke depan hari apa?"
nanti outputnya muncul "12-04-2015"
jadi jumlah hari yang di inputnya random gan, kalo yg kaya gitu gimana gan scriptnya? bantu yaa..
Jika inputnya teks random seperti itu susah menerjemahkannya sis, misalnya '15 hari kedepan', 'besok tanggal berapa', 'tanggal berapa minggu depan'. Ini sudah termasuk kecerdasan buatan, hehe… atau bisa juga dengan membangun database yang terdiri dari seluruh kemungkinan teks yang ada.
Sebaiknya dibatasi saya kalimat yang bisa diinput seperti "x hari ke depan hari apa?". Nah, x ini yang hanya boleh berubah sedangkan kalimatnya harus tetap. Kalau seperti ini kita bisa menggunakan regular expression atau fungsi substr() untuk mengambil angka 'x', apakah itu 20, 15, 300 hari g masalah.
Kalau butuh kode program seperti yang kedua, silahkan kontak saya ke [email protected] (dengan sedikit donasi). Tapi kalau teksnya acak, saya g sanggup, hehe…
pak tolong dibantu. gimana ya caranya agar ketika input data hurufnya bisa di sesuaikan. soalnya ketika saya input data di php saya hurufnya jadi besar semua.
maklum baru belajar.. hehehe,,,
if (!empty($nama))
{
echo "Nama: $nama <br /> Email: $email";
}
else
{
die("Maaf, anda harus mengisi nama");
}
Gan itukan klo diisi dengan spasi doang gk false gimana agar dia false klo diisi spasi doang
Bisa tambahkan fungsi trim(), jadi kondisi di awal: if (!empty(trim($nama)))
$name = isset($_POST['name']) ? ($_POST['name']) : "";
maksud kodingan diatas apa ya pak?
apakah ini penyebabnya form saya yg personal.php isinya hilang ketika form family.php di isi dan di save? belum nemu trouble nya pak, kenapa form personal isinya hilang ketika form yg lain di klik tombol save
Itu operator singkat PHP mas, kira2 sama seperti ini:
IF (isset($_POST['name'])) {
$name = ($_POST['name']);
} ELSE {
$name = '';
}
Ini hanya untuk mengecek apakah variabel $_POST['name'] sudah diisi atau tidak.
Kalau soal formnya yang 'hilang', sepertinya g ada hubungannya mas, mungkin ada kode lain yang menyebabkan hal itu.
Berarti $action = isset($_GET['action']) ? $_GET['action'] : "";
sama saja dengan materi yah ? sama-sama mengecek apakah sudah terpenuhi atau belum,
Betul, apakai penulisan seperti itu juga bisa.
mau tanya master, kalo utk validasi email dari user ternyata sudah masuk ke database gmn ya?
misal user masukin [email protected] , tapi di database udah ada , nah bakalan pop up dengan javascriptnya gimana? atau kalo pake phpnya gimana ya ? apakah ini masuk ke bagian session? trims :)
Berarti ketika akan diinput ke database, di cari dulu gan, apakah di tabel tersebut sudah ada email yang sama atau belum (dengan query MySQL). Jika udah, tinggal ditampilkan pesan kesalahan. Mengenai kode PHPnya, cukup panjang nih, apalagi jika agan pengen pakai jendela pop up dengan JavaScript. Tp g perlu pakai session kok.
Kalau urgent, Mungkin bisa dicari jasa programmer yang bisa mengerjakan ini.
Mau tanya para master saya masih pemula dan ingin belajar banyak tentang php.
Saya ingin membuat validasi inputan dengan 2 kreteria untuk membuat jadwal jadi jika tanggalwaktu sama asalkan guru pembimbing tidak sama bisa input ke data base sedangkan jika duaduanya sama maka muncul peringatannya..mohon bantuannya
Kode programnya cukup panjang nih gan, dan pertanyaannya juga butuh jawaban yang tidak sebentar.
Mungkin bisa dibaca2 lagi tutorial yang ada di duniailkom. Dan jika belum mencukupi bisa coba cari buku yang membahas PHP secara lengkap.
Saya masih pemula, mw tanya nc gmna bkin validasi form pemesanan, jika pada hari yg sama dan jam yg sama jumlah pemesanan lebih dari 4 maka pemesan lain tidah bisa memesan lagi dan harus di jam berbeda… Toloong..
Walaupun terkesan simple, pemrosesan form seperti itu cukup kompleks gan. Harus gabungan MySQL dan PHP.
Ketika form akan diproses, cek dulu ke database apakah sudah ada 4 pesanan atau belum. Jika sudah tampilkan pesan error agar user memilih jam berikutnya. Jika belum, masukkan data baru ke database.
Apakah mas Andre punya tutorial tentang validasi inputan atau pilihan option yang terhubung dalam database mysql dlm web ini?. Semisal begini ketika pilih option Nama Kecamatan A, maka sebelahnya (text) tampil kode kecamatan
Saat ini belum ada mas. Fitur seperti yang mas inginkan hanya bisa dibuat dengan AJAX, yakni gabungan JavaScript dan PHP.
Tp jika isi kemacatannya itu kita tulis manual (bukan dari database), contoh sederhanananya bisa ke: https://www.duniailkom.com/tutorial-belajar-jquery-cara-menambah-baris-tabel-html-dengan-jquery/
Di tutorial tersebut saya menambahkan sebuah baris baru ke dalam tabel setiap kali tombol di klik. Untuk membuatnya menampilkan kode kecamatan, tentu harus merancang lagi kode program JavaScriptnya.
mas, saya lagi buat sistem chatting. rencananya kalo form pesan kosong lalu di submit ntar yg keluarnya tulisan ping. saya bikin scriptnya gini tapi gk berhasil :
<input type="hidden" value="ping" name="ping">
<?php
if (empty($_GET['msg'])){
$msg=$_POST['ping'];
}else{
$msg=$_POST['msg'];
}
NB : msg tuh form pesannya
Assalamualaikum mas
saya mau nanya, Itu Is_Numeric perintahnya "isi dengan huruf" tapi saya ubah menjadi angak tetap tidak bisa jalan, malahan perintah nya terus yang muncul "isi dengan angka" padahal sudah saya isi dengan angka :"
Mas, Terima kasih untuk tutorialnya.. saya baru mengikuti ada kendala. Kenapa tidak bisa run di Mozilla atau Chrome? hanya bisa jalan di IE (ver 11). Sempat bingung padahal sudah coba copy paste kode tapi tetap tidak mau. tks
Seharusnya g ada masalah dengan web browser gan. Atau bisa coba putus koneksi internet, baru akses kembali localhost. Juga pastikan menulis alamat file secara lengkap dengan "http"-nya, seperti: http://localhost/namafile.php.
Kalau validasi username dan email,jika username atau email sudah ada yang pakai gimana gan?
Cukup panjang pembahasannya gan, soalnya sudah melibatkan database MySQL juga.
Di eBook PHP Uncover saya butuh 80 halaman lebih untuk menjelaskan tentang cara validasi saja. Kalau tertarik, bisa coba order gan, hehe…
Bro rekuest form daftar login dan kirim ke database boleh, sama halaman profil bro
Request di tampung y gan… tp tutorial seperti itu lumanan panjang. Untuk saat ini baru tersedia di eBook PHP Uncover (membuat form login sederhana + aplikasi CRUD).
bang, kalau menggunakan option sama chechbox gimana bang ?
Caranya kurang lebih sama gan, bedanya nilai yang dikirim berasal dari atribut value yang ditulis di form HTML. Misalnya ada checkbox:
<input type="checkbox" name="jenis_kelamin" value="Laki-laki" > Laki-laki bro…
Ketika checkbox ini dipilih dan submit, bisa diakses dari variabel:
$_GET['jenis_kelamin'];
gan cara agar nis ketika di ketik nama tidak bisa,gimana skripnya gan?
Untuk membuat fitur seperti itu, mesti pakai JavaScript gan…
Masih bingung juga mas.
Sy sudah ikuti tutorial proses.php ini.
Dan sudah sy simpan dalam satu folder, tapi bukan di "XAMMP".
Tapi, saat tombol "submit" diklik hasilnya tetap seperti ini:
<?php
echo $_GET['username'];
echo $_GET['password']:
?>
Kira-kira letak kesalahannya dimana ya mas.
Apakah "form.html" dan "proses.php" harus disimpan di "htdocs" ??
Mohon pencerahannya mas.
Terimakasih.. Newbi.
Oh, kalau ingin menjalankan kode program PHP, "wajib hukumnya" pakai aplikasi web server gan, seperti apache yang ada di XAMPP. Kalau g pakai XAMPP, PHPnya g akan bisa jalan.
Silahkan ikuti tutorial belajar PHP dasar mulai dari Part 1 dulu gan :)
permisi gan, saya lg pusing masalah desain formulir buat dicetak lewat koding mpdf kok ngacak ya gan,,, mohon dibantu.
Silahkan baca2 lagi manualnya gan: mpdf.github.io
Meng-generate file pdf memang cukup kompleks, minimal mesti paham HTML, CSS dan PHP tingkat lanjut.
permisi mas saya lagi buat web toko online,saat barang yg saya jual stoknya 8 tapi pelangan masih bisa beli lebih itu gmna ya mas untuk membuat validasi / menampilkan pesan errornya.??
thank
Berarti webnya sudah jadi y? pakai CMS seperti wordress atau prestashop mas? Kalau iya, bisa cari plugin yang sesuai.
Membuat fitur seperti itu cukup sulit, apalagi jika webnya sudah jadi. Karena kita harus mempelajari dulu seluruh kode program yang ada (mungkin bisa ribuan baris).
permisi master numpang tanya… kalau text fieldnya tidak diisi maka muncul error langsung pas kita klik buttonnya…. gimana ya tanpa pakai script php… kalau gk salah ada syntax html yang bisa bikin begitu, tapi saya lupa terus browsing di google dapatnya pakai php dan javascript… terima kasih
Betul gan, itu fitur terbaru di HTML5. Caranya dengan menambahkan atribut required di tag <input>, seperti contoh berikut:
<input type="text" name="username" required>
min.. makasi banget ya ilmunya.. sangat sangat bermanfaat min.. moga jadi sadaqah jariah min :D :D
min punya pembahasan tentang session g min?? aku lagi nyari2 tentang itu, klo ada minta link nya ya min..
makasi ya min :) :D
permisi Gan, mau nanya.. kalo kita mau masukin email tapi harus pake @, kalo tidal pake @ akan muncul pesan error.. kodingannya gimana yah? terima kasih sebelumnya ????
Kalau untuk mendeteksi apakah ada '@' atau tidak, bisa menggunakan fungsi strpos() PHP: http://php.net/manual/en/function.strpos.php
Untuk yang lebih detail bisa menggunakan regular expression.
Mengenai kode programnya, cukup rumit nih. Agan mesti paham gimana cara membuat validasi dan mengatur logikanya (kapan error, kapan tidak, dan bagaimana menampilkan pesan errornya).
Mas saya mau tanya, saya bikin form dgn bbrapa txtbox. Sudah pake validasi. Ketika ada txtbox yg kosong, ada msgbox. Trus kmbali k halaman formnya. Nah kalau slah satu txtboxnya yg kosong, ko smua txtbox jadi kmbali kosong smua. Apa ada coding yg bisa mmbuat txtbox yg sudah trisi ttp ada isinya?
Kita memang harus menggenerate sendiri isian form ini gan. Nilai textbox lain yang sudah terisi, harus "ditangkap" lalu dipindahkan ke atribut value tag input. Idenya seperti ini:
<input type="text" name="username" value="<?php echo $nilai_username?>">
Disini, variabel $nilai_username berasal dari isian form sebelumnya.
Penjelasan dan cara kerjanya memang cukup panjang. Di eBook PHP Uncover Duniailkom saya butuh puluhan halaman untuk membahas hal ini :)
maaf mau nanya , apabisa kita ingin meng inputkan banyak string dalam 1 texfield apakah itu bisa ?
jika bisa tolong kasih gambaran , terimakasih
Kalau stringnya panjang, bisa menggunakan <textarea> gan. Tp kalau maksudnya pengen memecah string2 ini, nanti bisa menggunakan fungsi explode, atau pakai regular expression untuk memisah kata per kata.
gan apasih perbedaannya mysql , msqli , dan mysqlnd. tolong penjelasannya
Silahkan lajut kesini gan: https://www.duniailkom.com/tutorial-php-mysql-jenis-koneksi-php-mysql-pdo-mysqli-dan-mysql-extension/
author.. ane mau nannya nih..
di tutor ini kok ane selalu mendapatkan 'username telah digunakan'
sedangkan saya cek di database.. username yang sedang saya masukkan belum ada di database..
Yakin dari tutorial ini gan? soalnya disini saya malah belum masuk ke database, hehe…
Dalam tutorial diatas saya hanya mengecek apakah form sudah diisi atau belum.
eh salah.. sorry :"v
siang kak. mau tanya nih, kan sy dpt tugas dr dosen, tampilan'y harus bisa browse file, ada 1 tombol utk membaca file yg di browse, 1 tombol utk mengengkripsi isi file yg sdh di browse, dan tombol 1'y lg utk mendekripsi file kembali spt semula.
nah kalo yng browse sama tampilkan isi file sdh jd, tp gliran mau panggil lg file yg sama utk di enkripsi gmana ya cara'y kak? rumus enkripsi'y sy tau, cuma gak tau aja gmana agar isi file'y masuk di tombol enkripsi.
mohon bantuan'y kak :)
Silahkan pelajari cara handling file upload PHP gan, mungkin bisa lanjut kesini: http://www.w3schools.com/php/php_file_upload.asp, selain itu kayaknya mesti belajar juga cara membaca file dari PHP (PHP file handling).
Lumayan panjang tuh pembahasannya, dan termasuk materi PHP lanjutan. Saran saya coba cari buku PHP yang membahas file processing, atau cari tutorialnya di situs2 luar (saat ini di duniailkom belum tersedia)
Salam sejahtera untuk semuanya, saat ini saya sedang membuat form peminjaman barang berbasis web, yang saya ingin tanyakan bagaimana caranya agar saat penginputan waktu tidak bentrok, contoh: Jika orang A menginput form "akan" meminjam barang dari jam 02:00 – 03:00, maka orang B tidak bisa menginput form peminjaman dengan barang yang sama di antara jam 02:00 – 03:00. bagaimana caranya agar tidak bentrok dalam data basenya. Mohon bimbingan skripnya dan codingnya. Terima kasih sebelumnya.
Berikut yang saya coba buat
$jam_awal_cek = $_POST[jam_awal];
$jam_akhir_cek = $_POST[jam_akhir];
$jam_awal = strtotime('$jam_awal');
$jam_akhir = strtotime('$jam_akhir');
$cek_sql = "SELECT * FROM jadwal
While
(($jam_awal >= $jam_mulai_cek AND $jam_awal <= $jam_akhir_cek)
OR
($jam_akhir >= $jam_mulai_cek AND $jam_akhir <= $jam_akhir_cek))
AND
$tanggal= $_POST[tanggal];
$cek_query = mysql_query($cek_sql);
$cek_jumlah = mysql_num_rows($cek_query);
if($cek_jumlah > 0)
{
// sudah ada yang booking (pesan)
}
else
{
// anda bisa booking (pesan)
}
Gan saya kan buat form inputnya buku dan di dalamnya ada kategori yang harus dipilih menggunakan <select>kategori<option>pilih kategori</option>
<option>dari db</option></select>
Yg ke saya tanyakan gmn codingnya membuat validasi jika dipilih "pilih kategori" maka data tidak disimpan.
Trim's pencerahan nya
Kalau pemrosesan formnya agan sudah bisa? Untuk validasi seperti itu tinggal ditambahkan saja satu kondisi if.
Tambah tag select menjadi seperti ini:
<option value="pilih">pilih kategori</option>
Di PHP tinggal kita cek, jika isinya adalah "pilih" berarti user belum memilih kategori, dan batalkan pemrosesan form.
Gan mau nanya kalo tag required di html itu bisa di edit gak ya notifi nya ?
Misal kalau bawaan nya kan tulisan nya "please fill out this field" nah kalau mau di ganti jadi "cek kembali form nama" gitu bisa gak ?
kalo bisa kira2 gimana caranya ? *tanpa pake javascript
terimakasih.
Saya jg belum cari caranya, tapi kemungkinan besar akan menggunakan JavaScript.
Gan numpang tanya. Ane lagi belajar buat website pakai dreamweaver 8. Web nya tentang rental mobil. Ane buat form lalu ane buat tabel isi nya textfield list/menu dan button. Lalu cara validasi nya gmna gan dan data nya muncul dmna gan. Dan gmna caranya kalo org yg mau sewa mobil bisa tau apakah data yg dimasukkan terkirim atau tidak. Apakah muncul di database nya atau gmna gan. Mohon inspirasinya gan. Thankss
Menurut saya bisa coba cari buku2 tentang web programming saja gan, soalnya cukup banyak materi yang harus dikuasai. Minimal paham HTML, CSS, PHP, dan MySQL. Alternatifnya bisa cari jasa programmer untuk membuat fitur2 seperti itu. Takut saya butuh waktu lama untuk mempelajari semuanya.
Atau bisa juga webnya dibuat seperti artikel biasa menggunakan blogspot atau wordpress, cantumkan nomor kontak HP disitu. Jika ada yang pengen pesan, tinggal kontak saja via telp/WA/BBM, dll.
Author saya mau nanya, saya ingin membuat validasi ketika kita ingin menambahkan inputan baru harus dicek dulu database nya. misalnya membuat surat keterangan, ketika akan membuat surat keterangan baru harus mengecek surat keterangan yg sebelumnya apakah sudah di approve atau belum. kalau belum tidak bisa membuat surat keterangan baru, kalau sudah di approve bisa membuat surat keterangan baru
Kode programnya bisa cukup panjang nih… mesti paham HTML, CSS, PHP dan MySQL.
Saat form disubmit, cek dulu ke database apakah ada surat yang belum di approve. Jika ada, tampilkan pesan kesalahan. Alurnya memang seperti itu…
mau tanya mas ,ini bedanya apa?
<form action="proses.php" method="get">
sama
<form action="" method="get">
Kalau atribut action tidak ditulis, hasil form akan dikirim ke halaman saat ini.
Misalnya halaman saat ini namanya "form.php", jadi penulisan <form action="" method="get"> sama artinya dengan <form action="form.php" method="get">.
apakah bisa kita membuat double action seperti action="index.php & profil.php"
terimakasih
apakah kode diatas mengunakan php5
Kode diatas bisa berjalan baik di PHP 5 maupun PHP 7
Min mw tanya, kalau code php buat memeriksa variabel sudah terisi atau belum untuk form registrasi gmn min? Mohon jawabannya terimakasih :)
Bisa pakai fungsi: isset($nama_variabel)
Selamat pagi pak,saya mau nanya
Fungsi dari } dan { apa ya pak?
Thanks :)
Itu untuk membuat block kode program. Materi seperti ini dibahas pada pemrograman dasar PHP. Silahkan belajar pemrograman dasar PHP dulu sebelum ke pemrosesan form.
<?php
if ($_POST['email'] AND ($_POST['password']))
{
$email=($_POST['email']);
$password=($_POST['password']);
}
else
{
die("maaf, anda harus mengisi data terlebih dahulu");
}
if (empty($email))
{
die("maaf, anda harus mengisi email");
}
if (is_numeric($email))
{
die ("maaf, nama harus berupa huruf");
}
else
{
echo "selamat datang $email";
}
?>
pas saya buka form lalu hanya mengisi password lalu klik kirim kenapa yang muncul "maaf, anda harus mengisi data terlebih dahulu" bukannya yg muncul "maaf, anda harus mengisi email" ? terimakasih
gan kenapa punya saya meskipun gak pake validasi tampilannya gak ada error meskipun formnya gak d isi?
Bisa dipastikan kodenya sudah sama dengan di tutorial ini (di copas saja kalau ragu).
Assalamualaikum kak,
kak mau tanya kalau validasi form input yang data angka nya lebih dari sebelumnya gimana ya?
misalnya :
A : 2
B : 3
nah B tidak boleh lebih dari A.
Mohon dibantu kak masih pemula. Trimakasih.
Wassalamualaikum.
Waalaikumsalam… "angka sebelumnya" didapat dari mana? kalau dari form juga tinggal dibandingkan saja:
if ($_GET['B'] > $_GET['A']) {
echo "B tidak boleh lebih dari A";
}
tulisan di web gak nyaman dibaca
Baik, terimakasih masukannya…
Maaf, mau tnya sy lg bwt laporan dgn dompdf, jd kasus sy bgini, saat di tabel basis data tdk ad recordnya akan menampilkan angka 0, sy sdh coba pake koding bgini
$query=mysql_query("select * from tabel");
while($data=mysql_fetch_array($query)){
if(!empty($data['data'])){
echo "<td>'.$data['data'].'<\td>";
}else{
echo "<td>0<\td>";
}
}
Tapi kok gak muncul angka nolnya ya? Mohon bantuannya
Untuk proses pencarian kesalahan, bisa di test satu-satu dulu, misalnya coba di var_dump($data['data']) apakah memang kosong atau berisi sesuatu.
$query=mysql_query("select * from tabel");
while($data=mysql_fetch_array($query)){
var_dump($data['data']);
}
Kalo ada datanya pada tampilan laporannya kosong tapi masih terdapat cell, tapi kalo gak ada datanya pada tampilan laporannya kosong dan tidak terdapat cellnya sama sekali
gan klo inputanya huruf dan angka itu false gmna ya seperti ini "irvan wahyudin12"???
Ka gmn ya caranya buat validasi size gambar?
Maksudnya dimensi gambar ya (berdasarkan panjang dan lebar)?
Untuk keperluan itu bisa coba pakai function getimagesize(). Penjelasannya bisa ke sini: https://www.php.net/manual/en/function.getimagesize.php
Gan mau nanya kenapa yah waktu saya bikin script seperti ini saya selalu salah yahh
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
selalu ada pesan seperti ini salahnya
Notice: Undefined index: username in C:\xampp\htdocs\coba\simpan.php on line 3
Notice: Undefined index: nama in C:\xampp\htdocs\coba\simpan.php on line 4
Notice: Undefined index: alamat in C:\xampp\htdocs\coba\simpan.php on line 5
Notice: Undefined index: email in C:\xampp\htdocs\coba\simpan.php on line 6
Notice: Undefined index: no_hp in C:\xampp\htdocs\coba\simpan.php on line 7
Notice: Undefined index: password in C:\xampp\htdocs\coba\simpan.php on line 8
padahal saya sudah mencobanya berkaali kali hasilnya tetap saja,mohon bantuanny master :)
gan mau nanya
ini file form html:
<form action="proses.php" method="get">
Nama: <input type="text" name="x" />
<br />
E-Mail: <input type="text" name="email" />
<br />
<input type="submit" value="Proses Data" >
</form>
file proses.php:
<?php
if (isset($_GET['nama']) AND isset($_GET['email']))
{
echo $_GET['nama'];
echo $_GET['email'];
}
else
{
echo "Maaf, anda harus mengakses halaman ini dari form.html";
}
?>
*ketika saya jalankan kok bisa ya hasilnya http://localhost/phpdasar/proses.php?x=a&email=build%40yahoo.com
padahal ceknya kan if (isset($_GET['nama'])
yg di cek isset ini apakah hanya jika atribut name di html tidak kosong (dalam hal ini saya isi name="x") di html. apakah isset tidak mengecek nama dari atribut namenya (harus sesuai namanya ata tidak). soalnya kalo atribut (name=''') kosong di url gak muncul atribut namenya hanya emailnya.
apakah isset dgn cek nama yg beda dgn isi nama atribut name bisa gan? gak harus sama isi $_GET['isi ininyanamanya']; ?
Seharusnya kalau kodenya seperti itu dan yang di test adalah "proses.php?x=a&email=build%40yahoo.com", maka hasilnya akan "Maaf, anda harus mengakses halaman ini dari form.html".
Bisa dipastikan kembali file yang dicoba, takutnya file proses.php itu berisi kode program lain (bukan yang ditampilkan diatas).
Perintah isset($_GET['nama']) hanya akan TRUE jika di dalam form terdapat inputan dengan atribut name="nama", atau di web browser di ketika "?nama="blabla", tidak bisa dengan nilai lain seperti "?x="blabla".
oiya bener gan. munculnya string
"Maaf, anda harus mengakses halaman ini dari form.html".
tapi di urlnya dgn metode get tetep munculnya
proses.php?x=a&email=build%40yahoo.com ya? sesuai nama yg dikasih di atribut name="x"
utk validasinya masuk ke yg else krn nggak true. munculnya "Maaf, anda harus mengakses halaman ini dari form.html".
makasih banyak gan. saya terbantu bgt dgn web dunia ilkom ini. sukses selalu
Bang Andre jika di dalam form kita menyertakan input type file (misal foto) kemudian user tidak melakukan upload foto (tidak mengklik browse file) lalu user malah langsung klik submit. di php kita sudah mencoba membuat valisasi dengan if(emty($_FILES){$kesalahan_input ="File Upload tidak boleh kosong/harus upload foto";}. Pesan kesalahan sudah saya tempatkan ke bagian <?php if($pesan_kesalahan !=""){echo "<div>$pesan_kesalahan</div>" ?>. perintah tulis pesan_kesalahan ini sudah saya buat di tag html tapi kesalahan itu memang muncul di html tapi juga muncul di bagian php (diatas tag html) errornya seperti ini –> Warning: getimagesize(): Filename cannot be empty in C:\xampp\htdocs\folder-utama\nama-file.php on line 80
bagaimana solusi supaya pesan kesalahan itu tidak muncul di bagaian php (atau di atas tag html)?
permisi master, saya ada database "users" dengan tabel "users_level" berisi (nisn[primery_key], nama_lengkap, username, password, level[siswa, guru, editor, admin]). bisakah membuatkan tutorial form registrasi siswa, textfield nya (nisn, nama lengkap, username, password, re-password) yang mengharuskan siswa menginput NISN, ketika di submit jika inputan nisn dan nama lengkap sesuai dengan database, maka username dan password akan di update ke database tersebut yang sebelumnya kolom tersebut masih kosong.
jika nisn dan nama tdak sesuai tampilkan eror. terimakasih
Pak minta bantuan nya..
website saya saat uji coba di localhoht itu benar semua tetapi saat di online kan ko ada beberapa halaman yang tidak bisa akses,,,
contoh.
di localhost : pembelian produk ->masuk ke keranjang belanja ->beli/checkout -> nota pembelian barusan + masuk ke datebase data pembelian-> riwayat belanja dengan menampilkan hasil pembelian barusan
di online kan : pembelian produk ->masuk ke keranjang belanja ->beli/checkout -> tidak bisa masuk halaman nota pembelian barusan + tidak masuk ke datebase data pembelian-> riwayat belanja dengan menampilkan hasil pembelian barusan
ini kira" kenapa ya pak …
tolong bantuan nya pak
Agak susah untuk mencari errornya nih.., tapi umumnya disebabkan perbedaan versi PHP atau ada library PHP yang tidak aktif di hosting. Bisa cek apakah ada pesan error atau tidak, lalu investigasi dari sana.