• 14-11-2019, 15:54:07
    #1
    Merhaba herkese öncelikle sorunumu paylaşayım..

    Alıntı
    ( ! ) Error: Call to undefined function mysql_query() in C:wampwwwislem.php on line 12
    ( ! ) Fatal error: Uncaught Error: Call to undefined function mysql_query() in C:wampwwwislem.php on line 12
    bağlantı şeklim..

    <?php
    $hostadresi =    "localhost";
    $kullaniciadi =    "root";
    $sifre =    "";
    $veritabani =    "tasarimtekniksanat";
    
    $baglanti = mysqli_connect($hostadresi,$kullaniciadi,$sifre,$veritabani);
    if (mysqli_connect_errno())
    {
    echo "MySQL bağlantısı başarısız: " . mysqli_connect_error();
    }
    ?>
    yaptırmaya çalıştığım işlem

    <?php
    
    if (isset($_POST['girisyap'])){
    
    $admin_kadi =$_POST['admin_kadi'];
    $admin_sifre =$_POST['admin_sifre'];
    
    if ($admin_kadi && $admin_sifre) {
    
        $sorgula=mysql_query("SELECT * FROM users where admin_kadi='$admin_kadi' and admin_sifre='$admin_sifre'");
    
    $verisay=mysql_num_rows($sorgula);
    
    
    if ($verisay>0) {
    
        $_SESSİON['admin_kadi'] =$admin_kadi;
    
        header('Location:index.php');
    
    } else {
    
    
        header('Location:login.php?login=no');
    }
    }
    
        }
  • 14-11-2019, 15:55:45
    #2
    PHP & Flutter & Laravel
    Artık mysql_query şekli kullanılmıyor kullanımdan kaldırıldı PDO ile yapabilirsiniz aynı işlemi. Alttaki gibi olacak yani düzenledim. Birde SESSİON değil SESSION yani büyük İ harfi olmayacak

    <?php
    
    if (isset($_POST['girisyap'])){
    
    $admin_kadi =$_POST['admin_kadi'];
    $admin_sifre =$_POST['admin_sifre'];
    
    if ($admin_kadi && $admin_sifre) {
    $sorgula=$baglanti->prepare("SELECT * FROM users where admin_kadi='$admin_kadi' and admin_sifre='$admin_sifre'");
    $sorgula->execute();
    $verisay=$sorgula->row_count();
    
    if ($verisay>0) {
    
    $_SESSİON['admin_kadi'] =$admin_kadi;
    
    header('Location:index.php');
    
    } else {
    
    
    header('Location:login.php?login=no');
    }
    }
    
        }
  • 14-11-2019, 16:51:28
    #3
    aksoyhlc adlı üyeden alıntı: mesajı görüntüle
    Artık mysql_query şekli kullanılmıyor kullanımdan kaldırıldı PDO ile yapabilirsiniz aynı işlemi. Alttaki gibi olacak yani düzenledim. Birde SESSİON değil SESSION yani büyük İ harfi olmayacak

    <?php
    
    if (isset($_POST['girisyap'])){
    
    $admin_kadi =$_POST['admin_kadi'];
    $admin_sifre =$_POST['admin_sifre'];
    
    if ($admin_kadi && $admin_sifre) {
    $sorgula=$baglanti->prepare("SELECT * FROM users where admin_kadi='$admin_kadi' and admin_sifre='$admin_sifre'");
    $sorgula->execute();
    $verisay=$sorgula->row_count();
    
    if ($verisay>0) {
    
    $_SESSİON['admin_kadi'] =$admin_kadi;
    
    header('Location:index.php');
    
    } else {
    
    
    header('Location:login.php?login=no');
    }
    }
    
    }
    @aksoyhlc arkadaşın güncellemesine ek olarakta bağlantı şeklin aşağıdaki gibi olabilir.

    $host="";
    $dbname="";
    $kadi="";
    $sifre="";
    
    try {
    $baglanti = new PDO("mysql:host=".$host.";dbname=".$dbname."", $kadi, $sifre);
         $baglanti->query("SET CHARACTER SET utf8");
    } catch ( PDOException $e ){
    print $e->getMessage();
    }




    Dixie7 adlı üyeden alıntı: mesajı görüntüle
    Merhaba herkese öncelikle sorunumu paylaşayım..



    bağlantı şeklim..

    <?php
    $hostadresi =    "localhost";
    $kullaniciadi =    "root";
    $sifre =    "";
    $veritabani =    "tasarimtekniksanat";
    
    $baglanti = mysqli_connect($hostadresi,$kullaniciadi,$sifre,$veritabani);
    if (mysqli_connect_errno())
    {
    echo "MySQL bağlantısı başarısız: " . mysqli_connect_error();
    }
    ?>
    yaptırmaya çalıştığım işlem

    <?php
    
    if (isset($_POST['girisyap'])){
    
    $admin_kadi =$_POST['admin_kadi'];
    $admin_sifre =$_POST['admin_sifre'];
    
    if ($admin_kadi && $admin_sifre) {
    
        $sorgula=mysql_query("SELECT * FROM users where admin_kadi='$admin_kadi' and admin_sifre='$admin_sifre'");
    
    $verisay=mysql_num_rows($sorgula);
    
    
    if ($verisay>0) {
    
        $_SESSİON['admin_kadi'] =$admin_kadi;
    
        header('Location:index.php');
    
    } else {
    
    
        header('Location:login.php?login=no');
    }
    }
    
        }

    Aşağıdaki haliyle en temizinden son haliyle ve daha güvenlikli bir şekilde yapabilirsin.

    $host="localhost";
    $dbname="tasarimtekniksanat";
    $kadi="root";
    $sifre="";
    
    try {
    $baglanti = new PDO("mysql:host=".$host.";dbname=".$dbname."", $kadi, $sifre);
    $baglanti->query("SET CHARACTER SET utf8");
    } catch ( PDOException $e ){
    print $e->getMessage();
    }
    
    if (isset($_POST['girisyap'])){
        
        $admin_kadi=$_POST['admin_kadi'];
        $admin_sifre=$_POST['admin_sifre'];
        
        if ($admin_kadi && $admin_sifre) {
            
        $sorgula=$baglanti->prepare("SELECT * FROM users where admin_kadi= :adminkadi and admin_sifre= :adminsifre");
        $sorgula->bindParam(':adminkadi', $admin_kadi, PDO::PARAM_STR, 12); //KARAKTER VE VERI TIPI SAYISI GÜNCELLEYEBILIRSIN
        $sorgula->bindParam(':adminsifre', $admin_sifre, PDO::PARAM_STR, 12); //KARAKTER VE VERI TIPI SAYISI GÜNCELLEYEBILIRSIN
        $sorgula->execute();
        $verisay=$sorgula->row_count();
        
            if ($verisay>0) {
            
            $_SESSION['admin_kadi']=$admin_kadi;        
            header('Location:index.php');
            
            } else {
            
            header('Location:login.php?login=no');
            }
        }
    }
    
    //https://www.php.net/manual/tr/pdostatement.bindparam.php
  • 14-11-2019, 18:00:06
    #4
    Bahsettiğiniz gibi kodu değiştirdim $_SESSION şeklinde düzeltim database bağlantısınıda dediğiniz gibi onardım bu seferki aldığım hata böyle

    Alıntı
    ( ! ) Error: Call to undefined method PDOStatement::row_count() in C:wampwwwislem.php on line 13( ! )
    Fatal error: Uncaught Error: Call to undefined method PDOStatement::row_count() in C:wampwwwislem.php on line 13
    işlem.php deki 13.satır

    $verisay=$sorgula->row_count();



    if (isset($_POST['girisyap'])){
    
    $admin_kadi =$_POST['admin_kadi'];
    $admin_sifre =$_POST['admin_sifre'];
    
    if ($admin_kadi && $admin_sifre) {
    $sorgula=$baglanti->prepare("SELECT * FROM users where admin_kadi='$admin_kadi' and admin_sifre='$admin_sifre'");
    $sorgula->execute();
    $verisay=$sorgula->row_count();
    
    if ($verisay>0) {
    
    $_SESSION['admin_kadi'] =$admin_kadi;
    
    header('Location:index.php');
    
    } else {
    
    
    header('Location:login.php?login=no');
    }
    }
    
    }
    <?php
    
    $host="localhost";
    $dbname="tasarimtekniksanat";
    $kadi="root";
    $sifre="";
    
    try {
    $baglanti = new PDO("mysql:host=".$host.";dbname=".$dbname."", $kadi, $sifre);
    $baglanti->query("SET CHARACTER SET utf8");
    } catch ( PDOException $e ){
    print $e->getMessage();
    }
    
    ?>
  • 14-11-2019, 23:13:14
    #5
    Gözümüzden kaçmış orası şu şekilde olacak.
    $verisay=$sorgula->RowCount();
  • 15-11-2019, 09:21:57
    #6
    Yardımcı olan herkese teşekkür ederim sorunum çözüldü.
  • 15-11-2019, 09:48:30
    #7
    Dixie7 adlı üyeden alıntı: mesajı görüntüle
    çok teşekkür ederim veri tabanı sorunum çözüldü fakat index.php ye giremiyorum bu seferde sanırım yanlış eğitim videoları izlemişim

    index.php deki oturum kontrol eden kodum böyleydi..

    if (!isset($_SESSION['admin_kadi'])) {
    
    header('Location:login.php');
    }
    Şimdi yaptığımız işlemi özetleyelim.

    Veri tabanımıza bağlandık.
    Bir form aracılığı ile girisyap adından bir post var ise form ile gelen kullanıcı adı ve şifremizi aldık.
    Bu kullanıcı adı ve şifremizi kullanıcı tablosunda sorguladık
    Sorguladıgımızda kayıt sayısı 0 dan büyükse yani eşleşen 1 kayıt döndüyse sorgumuzda kullanıcı adımızı $_SESSION['admin_kadi'] adında bir değişkene atadık ve
    sayfamızı index.php sayfasına yönlendirdik.

    Oturumu kontrol eden kodun yani aşağıdaki kod diyor ki $_SESSION['admin_kadi'] değişken tanımlanmadıysa login.php sayfasına gönder.
    if (!isset($_SESSION['admin_kadi'])) {
    header('Location:login.php');
    }
    Şimdi index.php sayfasına girdiğinde seni login.php sayfasına atıyorsa demek ki session oluşturup değişkenimize değer atayamadık içi boş. Biz kodlarımızda session başlatmadık hiç. Kodlarımızın en başına aşağıdaki kodu eklersek sorunun düzelecek muhtemelen.
    ob_start();
    session_start();
    Umarım sorun çözülür bundan sonra kodların tamamını görmeden yardımcı olamayacağım.