- Published on
PHP'de Veritabani Kontrolü ile Email Hesabı Varsa Hata Döndüren, Yoksa o Hesabı Veritabanina Ekleyen Kodun Yazımı
- Authors
- Name
- Alperen Önal
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="" method="POST">
Eposta: <input type="email" name="email" required> <br>
Sifre: <input type="password" name="password" required> <br>
<input type="submit">
</form>
</body>
</html>
<?php
function VeriTaban(){
$connection = new mysqli("localhost", "root", "", "x"); // veritabanı bağlantımı sağlıyorum. (kendi bilgilerime göre)
if ($connection->connect_errno) { // baglanti gerçekleşmez ise bu field 0 döndürür ve içeri girilmez.
echo "baglanti hatasi alindi: " . $connection->connect_error;
exit();
} else {
echo "baglanti başariyla gerçekleşti.<br>";
}
$ctr = 0;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$mail = $_POST['email'];
$sifre = $_POST['password'];
if (!empty($mail) && !empty($sifre)) { // hata almamak için inputların içlerinin dolu olması koşulunu ekliyorum.
$sqlSorgusu = "SELECT * FROM users WHERE Eposta='$mail'";
$query = $connection->query($sqlSorgusu);
while ($row = $query->fetch_array()) {
if ($row['Eposta'] == $mail) { // eğer input'dan gelen eposta degerimiz zaten veritabanında tanımlanmış ise.
echo "HATA: BU EMAİL HESABI ZATEN KULLANIMDA !";
$ctr++;
}
}
if ($ctr == 0) {
$ekle = "INSERT INTO users (Eposta, Sifre) VALUES ('$mail', '$sifre')"; // insert sorgumuz.
if ($connection->query($ekle) === TRUE) { // baglanti başarılı ise gir.
echo "Veritabanina Kayit Eklendi";
} else {
echo "Hata: " . $ekle . "<br>" . $connection->error;
}
}
}
}
$connection->close();
}
VeriTaban(); // Burada istersek fonksiyonumuza parametre olarak veritabanının adresini falan gönderebiliriz. Ama ben parametresiz yaptım.
?>