Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Form validasi di php
Hallo semuanya,
Disini saya mempunyai project sederhana yaitu login & register dengan PHP biasa tanpa framework dengan email verifikasi,
Jadi di sini saya ingin membuat kalau sudah ada email yg terdaftar di database di kasih alert + gagalkan masuk database gitu.
Dan saya juga ingin membuat agar user daftar nya dengan akun Gmail(@gmail.com) atau dengan Yahoo(@yahoo.com), karena sekarang banyak website yang menyediakan fake mail,jadi saya gk pengen user mendaftar dengan fake mail itu dan di tampilkan alert kesalahan gitu
.
Kira2 logika pembuatan nya itu gimana yaa?
1 Jawaban:
Jawaban Terpilih
<div>Hallo, izn bantu jawab, kamu bisa gunakan validasi secara manual, seperti berikut contohnya :<br>1. Validasi agar email yang sudah terdaftar tidak bisa daftar kembali.<br>Kamu bisa mengecek secara langsung pada database, menggunakna query, contohnya seperti ini :</div><pre>$userMail = 'hanafi@gmail.com'; $result = mysqli_query($connection, "SELECT * FROM users WHERE email = '$userMail'"); if (mysqli_num_rows($result) > 0) { echo "Email kamu sudah terdaftar!"; } else { //Insert ke table }</pre><div>Referensi :<br><a href="https://www.php.net/manual/en/mysqli-result.num-rows.php">https://www.php.net/manual/en/mysqli-result.num-rows.php</a><br><a href="https://stackoverflow.com/questions/10119665/checking-if-data-exists-in-database">https://stackoverflow.com/questions/10119665/checking-if-data-exists-in-database</a><br><br>2. Validasi hanya email dengan domain @gmail.com dan @yahoo.com saja,<br>Kamu bisa memanfaatkan fungsi default bawaan dari php untuk mengecek apakah suatu string terdapat karakter/keyword tertentu, contohnya seperti ini :<br><br></div><pre><?php $userMail = "alamat@gmail.com";
// Test jika nilai $userMail terdapat domain @gmail if(strpos($userMail, '@gmail.com') !== false){ echo "Valid email"; } else{ echo "Fake email"; }</pre><div><br>Atau bisa juga seperti ini, jika domain yang diizinkan lebih dari 1 :</div><pre><?php $userMail = "hanafi@gmail.com";
//Mendefinisikan list domain email yang diizinkan dalam array $allowedDomainMails = ['gmail.com', 'yahoo.com', 'hotmail.com'];
//Pecah (Split) string berdasarkan tanda '@' $explodeMail = explode($userMail, '@'); // menjadi array berikut : 0 => hanafi, 1 => gmail.com $userDomainMail = end($explodeMail) //Ambil index paling akhir dari variable array $explodeMail
// Test jika nilai $userMail terdapat domain @gmail if(in_array($userDomainMail, $allowedDomainMails)){ echo "Valid email"; } else{ echo "Fake email"; }</pre><div><br>Referensi : <br><a href="https://www.tutorialrepublic.com/faq/how-to-check-if-a-string-contains-a-specific-word-in-php.php">https://www.tutorialrepublic.com/faq/how-to-check-if-a-string-contains-a-specific-word-in-php.php</a><br><a href="https://www.php.net/manual/en/function.in-array.php">https://www.php.net/manual/en/function.in-array.php</a><br><br>Semoga membantu!</div>