<?php
// PostgreSQL veritabanına bağlanma
$conn = pg_connect("host=xx.xx.xx.xx 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 {
$query = "SELECT * FROM kullanicilar WHERE kullanici_adi = '$Username'";
$result = pg_query($conn, $query);
if ($result) {
$aquery_user = "SELECT * FROM kullanicilar WHERE kullanici_adi = '$Username' AND sifre = '$Password'";
$aresult_user = pg_query($conn, $aquery_user);
if ($aresult_user) {
echo "Login successful.";
// Kullanıcı adını çerez olarak ayarla
setcookie("username", $Username, time() + (24 * 3600), "/");
} else {
echo "Kullanıcı adı ve şifre kontrol et.";
}
} else {
$query_email = "SELECT * FROM kullanicilar WHERE mail = '$Email'";
$result_email = pg_query($conn, $query_email);
if ($result_email) {
echo "Email already exists.";
}
$query_phone = "SELECT * FROM kullanicilar WHERE telefon_numarasi = '$PhoneNumber'";
$result_phone = pg_query($conn, $query_phone);
if ($result_phone) {
echo "Phone number already exists.";
}
if (!$result_email && !$result_phone && !$aresult_user) {
// Hazırlıklı ifade kullanarak veritabanına ekleme yap
$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.";
} else {
echo "User registration not successful.";
}
}
}
}
// Veritabanı bağlantısını kapat
pg_close($conn);
?>Merhabalar, web sitem için bir giriş sayfası yapmaya çalışıyorum ve bir kaç sorun çıkıyor yardımcı olur musunuz ? login sayfamda kullanıcı adı, email, telefon numarası ve şifre bölümü var. ilk önce veritabanında kullanıcı adı var mı yok mu diye kontrol etmek istiyorum ardından kullanıcı adını ve şifreyi doğrulamak istiyorum eğer kullanıcı adı ve şifre uyuşmuyorsa kullanıcı adı ve şifreyi kontrol et diye uyarı vermesini istiyorum. lakin kullanıcı adı yoksa veritabanında mail adresi ve telefon numarası var mı yok mu diye kontrol etmek istiyorum. eğer yoksa kullanıcı adı , mail adresini, telefon numarasını ve şifreyi veritabanına kaydetmesini istiyorum. yardımınız için teşekkürler.
PHP login sayfamda bir sorun var ?
6
●268
- 18-01-2024, 22:23:52
- 18-01-2024, 22:34:01o da bilemediFsolitary adlı üyeden alıntı: mesajı görüntüle
aslında bir hata de vermiyor anlamadın chatgpt ye soruyorum sadece ufak tefek düzenleme yapıyor sorunu çözmüyor. sence nasıl yapabilirim.
- 18-01-2024, 22:52:49Burada 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. - 21-01-2024, 21:18:40MythDev adlı üyeden alıntı: mesajı görüntüle
<?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 ? - 22-01-2024, 18:34:09Merhaba 05541913810 whatsapptan yazarsanız ücretsiz yardımcı olmak isterim
- 28-01-2024, 19:47:32<?phpemregunery adlı üyeden alıntı: mesajı görüntüle
// PostgreSQL veritabanına bağlanma
$conn = pg_connect("host=xx.xxx.xx.xxx port=5432 dbname=xxx user=xxx password=xxxxxx");
// 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ını kontrol et
$query = "SELECT * FROM kullanicilar WHERE kullanici_adi = '$Username'";
$result = pg_query($conn, $query);
if (pg_num_rows($result) > 0) {
$aquery_user = "SELECT * FROM kullanicilar WHERE kullanici_adi = '$Username' AND sifre = '$Password'";
$aresult_user = pg_query($conn, $aquery_user);
if ($aresult_user && pg_num_rows($aresult_user) > 0) {
// Kullanıcı adı ve şifre doğru, çerezi ayarla
setcookie("username", $Username, time() + (24 * 3600), "/", "xx.xxx.xx.xxx");
echo "Login successful.";
header("Location: http://xx.xxx.xx.xxx");
}else{
// Kullanıcı adı doğru ancak şifre yanlış
echo "Incorrect username or password. Please try again.";
}
}else{
// Kullanıcı adı bulunamadı, mail ve telefon numarasını kontrol et
$query_email = "SELECT * FROM kullanicilar WHERE mail = '$Email'";
$result_email = pg_query($conn, $query_email);
if (pg_num_rows($result_email) > 0) {
echo "Email already exists.";
}elseif(pg_num_rows($result_email) < 0){
$query_phone = "SELECT * FROM kullanicilar WHERE telefon_numarasi = '$PhoneNumber'";
$result_phone = pg_query($conn, $query_phone);
if (pg_num_rows($result_phone) > 0) {
echo "Phone number already exists.";
}elseif(pg_num_rows($result_phone) < 0){
// Kullanıcı adı, mail ve telefon numarası bulunamadı, veritabanına ekleme yap
$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) {
// Veritabanına ekleme başarılı, çerezi ayarla
setcookie("username", $Username, time() + (24 * 3600), "/", "xx.xx.xx.xx");
echo "User registration successful.";
header("Location: http://xx.xxx.xxx.xx");
} else {
echo "User registration not successful.";
}
}
}
}
}
?>
Son olarak şöyle bir düzenleme yaptım. elseif ile devam ettirdim.
aslında bir hata de vermiyor anlamadın chatgpt ye soruyorum sadece ufak tefek düzenleme yapıyor sorunu çözmüyor. sence nasıl yapabilirim.