Burada if bloğunda değişkenin değerini belirlemeniz gerekiyor. Yani şöyle;
if ($result->num_rows > 0) {
echo "Bu e-posta adresi zaten kullanımda.";
} else {
$insertQuery = "INSERT INTO kullanicilar (email) VALUES ('$email')";
Yani yaptığınız sorguda sıfırdan büyük veri geliyorsa kayıt yaptırmayacaksınız. Bu mantıkla else if kullanarak diğer alanlarda da yapabilirsiniz. Mobilde olduğum için tam kod örneği veremiyorum ancak mantığı bu.
<?php
// PostgreSQL veritabanına bağlanma
$conn = pg_connect("host=xx.xx.xx.xxx port=5432 dbname=xxx user=xxx password=xxx");
// Bağlantı başarılı mı kontrolü
if (!$conn) {
die("Veritabanına bağlantı sağlanamadı.");
}
// Kullanıcıdan alınan değerleri güvenli bir şekilde al
$Username = pg_escape_string($_POST['username']);
$Email = pg_escape_string($_POST['email']);
$PhoneNumber = pg_escape_string($_POST['phone']);
$Password = pg_escape_string($_POST['password']);
if (empty($Username) || empty($Password) || empty($Email) || empty($PhoneNumber)) {
// Eğer herhangi biri boşsa
echo "Please fill out all fields.";
} else {
// Kullanıcı adı kontrolü
$query_username = "SELECT * FROM kullanicilar WHERE kullanici_adi = '$Username'";
$result_username = pg_query($conn, $query_username);
if (pg_num_rows($result_username) > 0){
// Kullanıcı adı mevcut, şifre kontrolü yap
$query_password = "SELECT * FROM kullanicilar WHERE kullanici_adi = '$Username' AND sifre = '$Password'";
$result_password = pg_query($conn, $query_password);
if (pg_num_rows($result_password) > 0) {
// Kullanıcı adı ve şifre doğru, çerez ayarla
setcookie("username", $Username, time() + (24 * 3600), "/");
echo "Login successful.";
header("Location: http://xx.xx.xx.xx");
} else {
echo "Kullanıcı adı veya şifre hatalı.";
}
} else {
// Kullanıcı adı mevcut değil, diğer adıma geç
// Mail ve telefon numarası kontrolü
$query_email = "SELECT * FROM kullanicilar WHERE mail = '$Email'";
$result_email = pg_query($conn, $query_email);
$query_phone = "SELECT * FROM kullanicilar WHERE telefon_numarasi = '$PhoneNumber'";
$result_phone = pg_query($conn, $query_phone);
if (pg_num_rows($result_email) > 0) {
echo "Email already exists.";
} elseif (pg_num_rows($result_phone) > 0) {
echo "Phone number already exists.";
} else {
// Kullanıcı adı, mail ve telefon numarası mevcut değil, kullanıcıyı ekleyebilirsin
$insertUserQuery = "INSERT INTO kullanicilar (kullanici_adi, telefon_numarasi, sifre, mail) VALUES ($1, $2, $3, $4)";
$params = array($Username, $PhoneNumber, $Password, $Email);
$insertUserResult = pg_query_params($conn, $insertUserQuery, $params);
if ($insertUserResult) {
setcookie("username", $Username, time() + (24 * 3600), "/");
echo "User registration successful.";
header("Location: http://xx.xx.xx.xxx");
} else {
echo "User registration not successful.";
}
}
}
}
// Veritabanı bağlantısını kapat
pg_close($conn);
?>ŞU ŞEKİLDE BİR DEĞİŞİKLİK YAPTIM AMA Bİ DÜZELME OLMADI yardımcı olur musun ?