• 18-01-2024, 22:23:52
    #1
    <?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.
  • 18-01-2024, 22:29:21
    #2
    Chatgpt e yaz buraya yazdığını , ben yazdım cevabı veriyor
  • 18-01-2024, 22:34:01
    #3
    Fsolitary adlı üyeden alıntı: mesajı görüntüle
    Chatgpt e yaz buraya yazdığını , ben yazdım cevabı veriyor
    o da bilemedi 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:49
    #4
    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.
  • 21-01-2024, 21:18:40
    #5
    MythDev adlı üyeden alıntı: mesajı görüntüle
    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 ?
  • 22-01-2024, 18:34:09
    #6
    Merhaba 05541913810 whatsapptan yazarsanız ücretsiz yardımcı olmak isterim
  • 28-01-2024, 19:47:32
    #7
    emregunery adlı üyeden alıntı: mesajı görüntüle
    Merhaba 05541913810 whatsapptan yazarsanız ücretsiz yardımcı olmak isterim
    <?php
    // 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.