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?

avatar X451
@X451

41 Kontribusi 30 Poin

Diperbarui 3 tahun yang lalu

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) &gt; 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>&lt;?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>&lt;?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 =&gt; hanafi, 1 =&gt; 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>

avatar ahanafi
@ahanafi

815 Kontribusi 552 Poin

Dipost 3 tahun yang lalu

Tanggapan

Wah, makasih banyak mas! Sangat membantu. Sekali lagi makasih.

Sama-sama! :D Semangat juga belajarnya.

Login untuk ikut Jawaban