• 11-05-2019, 02:16:41
    #1
    Selamlar,
    Hem öğretelim hemde geliştirelim amaçlı olarak admin paneli yapımı rehberine başlamayı düşündüm.

    Oluşturacağımız dosyalar
    1-) kayit.php ( üyelik oluşturma)


    1-) Kayıt formunu yapmaya başlayalım

    Öncelikle üyelik sistemimiz olacağı için kullanıcıların kayıt olabileceği bir kayıt formu oluşturacağız. Buradan düz html kullanabiliriz.

    #Form başlangıcı
    <form action="kayit.php" method="post">
    </form>
    Buradan form alanımızı belirledik. Bu şekilde sayfada henüz bir şey görünmez çünkü herhangi bir veri girişi sağlayacak element koymadık sadece bu alanın form alanı olduğunu belirttik.

    Buradakiler neler peki ?
    <form> ve </form>
    form alanımızı belirtlen taglar
    action="kayit.php?islem=kayitol"
    Burada formdan gelen verilerin kayit.php dosyasına gönderileceğini belirttik
    method="post"
    Burada verilerin post olarak gönderileceğini belirttik post ile göndermek daha sağlıklıdır kullanıcılar gönderilen verileri tarayıcı üzerinde görmez.

    #Veri girişi alanı ekleme
    Veri girişi için input kodlarını kullanırız inputlarda kullanıcılar yazı yazabilir, seçme işlemi yapabilir gibi birçok işlem gerçekleştirebilirler.
    <form action="kayit.php" method="post">
    Kullanıcı Adınız :<br>
    <input type="text" placeholder="Kullanıcı adınız" name="uye_kullaniciadi"><br>
    Şifreniz :<br>
    <input type="text" placeholder="Şifreniz" name="uye_sifre"><br>
    Mail Adresiniz : <br>
    <input type="text" placeholder="Mail Adresiniz" name="uye_mail"><br>
    <input type="submit" value="Kayıt Ol">
    </form>
    Bu şekilde çok basit bir form oluşturmuş olduk.

    Buradakiler neler peki ?
    type="text"
    İnput türünün text olacağını belirttik yani bu alana yazı,sayı ve özel karakterler girilebilir.
    placeholder="Kullanıcı adınız"
    İnput alanına tıklanmadan önce transparan bir yazı yazdık, bu alana tıklandığında bu yazı kaybolur.
    name="uye_kullaniciadi"
    bu inputun adını uye_kullaniciadi olarak belirledik ve ilerde bu isim ile bu inputtan gelen verileri alacağız

    Bu alanın çıktısı şu şekilde olacak
    Buraya kadar yapılanları görmek ve önizlemek için - > https://codepen.io/anon/pen/OYNGZG

    2-) Veritabanı bağlantısını oluşturma
    Phpye kısmına geçmeden önce veritabanımız ile bağlantı kuracak olan dosyamızı oluşturalım ve bu bağlantı dosyasının adını baglan.php yapalım

    $vt_host = "localhost";
    $vt_kullanici = "root";
    $vt_sifre = "xxxx";
    $vt_adi = "xxxx";
    
    
    //Veritabanı bağlantısını yapıyoruz
    $vtbaglan = @mysql_connect($vt_host,$vt_kullanici,$vt_sifre) or die("Veritabanı bağlantısı sağlanamadı!");
    mysql_select_db($vt_adi,$vtbaglan) or die("Veritabanı bulunamadı!");
    @mysql_query("SET NAMES 'latin5'"); //MySQL Türkçe Karakter Sorununu çözdük
    Şimdide php kodlarımıza geçebiliriz.

    3-) Kayıt işlemlerini oluşturma

    <?php tagları bizim php kod alanımızı belirtir. Burada yazılanlar ekrana basma komutları hariç kullanıcıya gösterilmez
    Yine aynı dosyadan devam ederek ilerleyeceğiz
    Öncelikle formdan gelen verileri güvenli bir şekilde alalım aksi taktirde hacker tabiriyle adlandırdığımız kişiler farklı veriler göndererek veritabanınıza sızmaya çalışabilir bu yüzden güvenli bir şekilde $_GET ve $_POST değerlerini alalım bunun için bir fonksiyon oluşturacağız.

    <?php
    include("baglan.php"); //veritabanı bağlantı dosyamızı çektik
    function g ($get) {
    return htmlspecialchars(mysql_real_escape_string($_GET[$get]));
    }
    
    function p ($post) {
    return htmlspecialchars(mysql_real_escape_string($_POST[$post]));
    }
    ?>
    Güvenli olarak post ve get değerlerini aldığımıza göre devam edelim

    <?php
    if($_POST){
    function g ($get) {
    return htmlspecialchars(mysql_real_escape_string($_GET[$get]));
    }
    
    function p ($post) {
    return htmlspecialchars(mysql_real_escape_string($_POST[$post]));
    }
    
    $uye_kullaniciadi = p("uye_kullaniciadi");
    $uye_sifre= p("uye_sifre");
    $uye_mail= p("uye_mail");
    }
    ?>
    
    
    <form action="kayit.php" method="post">
    Kullanıcı Adınız :<br>
    <input type="text" placeholder="Kullanıcı adınız" name="uye_kullaniciadi"><br>
    Şifreniz :<br>
    <input type="text" placeholder="Şifreniz" name="uye_sifre"><br>
    Mail Adresiniz : <br>
    <input type="text" placeholder="Mail Adresiniz" name="uye_mail"><br>
    <input type="submit" value="Kayıt Ol">
    Burda neler yaptık ?
    Get ve post fonksiyonlarımızı güvenli bir şekilde almak için fonksiyon oluşturup bunları "g" ve "p" olarak tanımladık
    p("deger"); post değerlerini alır
    g("deger"); get değerlerini alır
    Bu şekilde basit bir sql injection atağı yemez ve verileri güvenli olarak veritabanınıza gönderirsiniz.

    Burada önce phpmyadmin üzerinden bir veritabanı oluşturuyor ve daha sonra aşağıda bulunan betiği çalıştırıyoruz

    Mysql veritabanımızda şu şekilde bir tablo oluşturmamız gerek

    CREATE TABLE `uyeler` (
    `id` int(11) NOT NULL auto_increment,
    `uye_kullaniciadi` varchar(300) NOT NULL,
    `uye_sifre` varchar(300) NOT NULL,
    `uye_mail` varchar(300) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;
    Burada neler yaptık ?
    uyeler tablomuzu oluşturduk ve "id" ile her kullanıcıya benzersiz bir numara verilmesini sağladık bu şekilde "1" den itibaren başlar.

    Daha sonra veritabanımızda gerekli alanları oluşturduğumuza göre devam edelim

    #Gelen Verileri Kayıt Etme

    Form alanından gelen verileri aldığımıza ve veritabanımız hazır olduğuna göre şimdide bu kullanıcıları veritabanına kayıt edelim.

    $ekle = mysql_query("INSERT INTO uyeler (uye_kullaniciadi,uye_sifre_uye_mail)VALUES('$uye_kullaniciadi','$uye_sifre','$uye_mail')");
    Burada neler yaptık ?
    Burda mysql_query ile yukarıda kayıt edilecek değerleri tanımladığımız için doğrudan bunları alıp veritabanımızda bulunan "kullanicilar" tablosuna kayıt eder.

    Daha sonra bu işlemin başarılı olup olmadığını öğrenebilirsiniz.

    #İşlem durumunu kontrol etme

    Kayıt işleminin sonucunu kontrol ederek üyeyi kayıt sonrasında bilgilendirebilir ve giriş alanına yönlendirebiliriz.
    $ekle = mysql_query("INSERT INTO uyeler (uye_kullaniciadi,uye_sifre_uye_mail)VALUES('$uye_kullaniciadi','$uye_sifre','$uye_mail')");
    if($ekle){ echo "Kayıt işlemi başarılı oldu, üyelik bilgileriniz: <br>
    $uye_kullaniciadi <br>
    $uye_sifre <br>
    $uye_mail <br>"; }else{ echo "Kayıt işlemi başarısız oldu"}
    Burada neler yaptık ?
    $ekle komutu başarılı olur ise ekrana "Kayıt işlemi başarılı oldu ve üyelik bilgileriniz şunlar : " dedik, eğer başarısız olur ise "Kayıt işlemi başarısız oldu" metinlerini yazdırdık.

    Şimdi hepsini toparlayalım
    4-) Sonuç

    kayit.php dosyamız.

    <meta charset="utf-8" />
    
    <?php
    include("baglan.php"); //veritabanı bağlantı dosyamızı çektik
    
    
    if($_POST){
    function g ($get) {
    return htmlspecialchars(mysql_real_escape_string($_GET[$get]));
    }
    
    function p ($post) {
    return htmlspecialchars(mysql_real_escape_string($_POST[$post]));
    }
    
    $uye_kullaniciadi = p("uye_kullaniciadi");
    $uye_sifre= p("uye_sifre");
    $uye_mail= p("uye_mail");
    
    $ekle = mysql_query("INSERT INTO uyeler (uye_kullaniciadi,uye_sifre,uye_mail)VALUES('$uye_kullaniciadi','$uye_sifre','$uye_mail')");
    if($ekle){ echo "Kayıt işlemi başarılı oldu, üyelik bilgileriniz: <br>
    $uye_kullaniciadi <br>
    $uye_sifre <br>
    $uye_mail <br>"; }else{ echo "Kayıt işlemi başarısız oldu";}
    
    
    }
    ?>
    
    
    <form action="kayit.php" method="post">
    Kullanıcı Adınız :<br>
    <input type="text" placeholder="Kullanıcı adınız" name="uye_kullaniciadi"><br>
    Şifreniz :<br>
    <input type="text" placeholder="Şifreniz" name="uye_sifre"><br>
    Mail Adresiniz : <br>
    <input type="text" placeholder="Mail Adresiniz" name="uye_mail"><br>
    <input type="submit" value="Kayıt Ol">
    baglan.php dosyamız
    $vt_host = "localhost";
    $vt_kullanici = "xxx";
    $vt_sifre = "xxx";
    $vt_adi = "xxx";
    
    
    //Veritabanı bağlantısını yapıyoruz
    $vtbaglan = @mysql_connect($vt_host,$vt_kullanici,$vt_sifre) or die("Veritabanı bağlantısı sağlanamadı!");
    mysql_select_db($vt_adi,$vtbaglan) or die("Veritabanı bulunamadı!");
    @mysql_query("SET NAMES 'latin5'"); //MySQL Türkçe Karakter Sorunu
    sql sorgumuz (veritabanında çalıştıracağımız sorgu)

    CREATE TABLE `uyeler` (
    `id` int(11) NOT NULL auto_increment,
    `uye_kullaniciadi` varchar(300) NOT NULL,
    `uye_sifre` varchar(300) NOT NULL,
    `uye_mail` varchar(300) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;
    Bu anlatım kolay şekilde anlamanız için giriş seviyesinde yapılmıştır.
    Bu şekilde çalıştığında basit bir kayit işlemi oluşturmuş oluyorsunuz. Kodları deneyerek yazdım çalışmaktadır. Konunun en sonunda bulunan kodları alıp kaydederseniz çalıştırabilirsiniz. Bir sonraki anlatım giriş fonksiyonları ile ilgili olacak konu altından bu konu ile ilgili sorularınızı yazabilirsiniz görüşmek üzere.
  • 11-05-2019, 02:18:49
    #2
    PDO olarak güncellemenizi tavsiye ediyorum. Bu şekilde bir işe yaramaz.

    Edit: Hata bastırma işlemi sisteme yarardan çok zarar getirir.
  • 11-05-2019, 02:20:14
    #3
    burak2yilmaz adlı üyeden alıntı: mesajı görüntüle
    PDO olarak güncellemenizi tavsiye ediyorum. Bu şekilde bir işe yaramaz.
    Konu başlığı php zaten , yaramaz derken?
    Php olarak anlatmaya devam edeceğim
  • 11-05-2019, 02:21:34
    #4
    ultibil adlı üyeden alıntı: mesajı görüntüle
    Konu başlığı php zaten , yaramaz derken?
    Php olarak anlatmaya devam edeceğim
    Anlatmaya devam edebilirsiniz. Kolay gelsin.
  • 11-05-2019, 02:27:55
    #5
    ultibil adlı üyeden alıntı: mesajı görüntüle
    Konu başlığı php zaten , yaramaz derken?
    Php olarak anlatmaya devam edeceğim
    Hocam iyi güzel anlatın da tedavülden kalkmış fonksiyonlar kullanıyorsunuz. Sistem site hata veriyor siz de bunu @ ile bastırıyorsunuz. bu hataları uyarıları bir okuyun ne diyor ne demek istiyor mysql_ fonksiyonları kaldırıldı eski php versiyonların hala çalışabilir fakat kalkmasında bir amaç var nedenlerini araştırın. güvenlik tehdidi oluşturur ve 2019 yılında mysql_ fonksiyonlari ile php öğrenmek yarardan çok zarar verir öğreneceklere. Arkadaş yukarıda yazmış PDO diye mysqli de olur ama bi bakın googleye bu PDO neymiş mysqli neymiş neden mysql_ fonksiyonları size bu uyarıyı veriyormuş. Cabanızı tebrik ederim ama ne yazık ki doğru yöntemleri göstermiyorsunuz.
  • 11-05-2019, 02:33:39
    #6
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Hocam iyi güzel anlatın da tedavülden kalkmış fonksiyonlar kullanıyorsunuz. Sistem site hata veriyor siz de bunu @ ile bastırıyorsunuz. bu hataları uyarıları bir okuyun ne diyor ne demek istiyor mysql_ fonksiyonları kaldırıldı eski php versiyonların hala çalışabilir fakat kalkmasında bir amaç var nedenlerini araştırın. güvenlik tehdidi oluşturur ve 2019 yılında mysql_ fonksiyonlari ile php öğrenmek yarardan çok zarar verir öğreneceklere. Arkadaş yukarıda yazmış PDO diye mysqli de olur ama bi bakın googleye bu PDO neymiş mysqli neymiş neden mysql_ fonksiyonları size bu uyarıyı veriyormuş. Cabanızı tebrik ederim ama ne yazık ki doğru yöntemleri göstermiyorsunuz.
    Konunun sonunda özellikle giriş seviye olarak belirttim hocam yani php ile hiç alakası olmayan kişiler için başlangıç seviyesi bu

    Edit: Arkadaşlar ben bunu alıp doğrudan kullanmaları için vermiyorum zaten bu şekilde doğrudan kullanılmaz konuyu detaylı inceledinizmi ? Düz html formu var farkettiyseniz , mantığı anlatmaya çalışıyorum burada ekrana bastırmadan adam hata olup olmadığını nasıl anlayacak saatlerce internette uğraşmasın diye direkt ekranda yazacak kayıt işlemi başarısız oldu diye
    Kimse mantığı anlamadan öğrenemez burda amaç nasıl çalışır mantığını göstermek çok gelişmiş bir şey anlatmıyoruz sonuç olarak en basit şekilde anlatmaya çalışıyoruz.
    Ben kişilerin basit şekilde mantığı kavraması için bu şekilde anlatmaya devam edeceğim siz daha iyi şekilde anlatmak istiyorsanız konu açabilirsiniz.
  • 11-05-2019, 02:42:02
    #7
    ultibil adlı üyeden alıntı: mesajı görüntüle
    Konunun sonunda özellikle giriş seviye olarak belirttim hocam yani php ile hiç alakası olmayan kişiler için başlangıç seviyesi bu
    hocam bu başlangıç seviyesi ile alakalı bir şey değil. pdo yada mysqli ileri seviyede değil basit crud işlemleri bunlar.
    https://eksisozluk.com/entry/743143
    yani demek istiyoruz ki mysql_ fonksiyonunu kullanımı artık tavsiye edilmiyor ve yarın bir gün kullanımı tamamen kalkacak. ve burada bunu öğrenen arkadaşlar mysqli pdo öğrenmek için uğraşacaklar bu seferde sistem çalışmayı durdurduğu için yeterince vakitleri olmayacak. o yüzden şimdiden direk mysqli yada pdo öğrensinler.
  • 11-05-2019, 02:44:31
    #8
    Misafir adlı üyeden alıntı: mesajı görüntüle
    hocam bu başlangıç seviyesi ile alakalı bir şey değil. pdo yada mysqli ileri seviyede değil basit crud işlemleri bunlar.
    https://eksisozluk.com/entry/743143
    yani demek istiyoruz ki mysql_ fonksiyonunu kullanımı artık tavsiye edilmiyor ve yarın bir gün kullanımı tamamen kalkacak. ve burada bunu öğrenen arkadaşlar mysqli pdo öğrenmek için uğraşacaklar bu seferde sistem çalışmayı durdurduğu için yeterince vakitleri olmayacak. o yüzden şimdiden direk mysqli yada pdo öğrensinler.
    Öğretin o zaman hocam
    Arkadaşlar ben bunu alıp doğrudan kullanmaları için vermiyorum zaten bu şekilde doğrudan kullanılmaz konuyu detaylı inceledinizmi ? Düz html formu var farkettiyseniz , mantığı anlatmaya çalışıyorum burada ekrana bastırmadan adam hata olup olmadığını nasıl anlayacak saatlerce internette uğraşmasın diye direkt ekranda yazacak kayıt işlemi başarısız oldu diye
    Kimse mantığı anlamadan öğrenemez burda amaç nasıl çalışır mantığını göstermek çok gelişmiş bir şey anlatmıyoruz sonuç olarak en basit şekilde anlatmaya çalışıyoruz.
    Ben kişilerin basit şekilde mantığı kavraması için bu şekilde anlatmaya devam edeceğim siz daha iyi şekilde anlatmak istiyorsanız konu açabilirsiniz.
    İyi geceler.
  • 11-05-2019, 03:55:48
    #9
    yav kardeşim eleştiri yapılabilir bir insana.

    Yorum yapan arkadaşların demek istediklerinde bir kötü niyet bulamadım ben. Sende de kötü niyet yok ama hala başlangıç seviyesi olarak mantık otursun diye söylüyorsun ama bu yöntem ile hiç bilmeyen kişiler alacak bu kodları kullanmaya başlayacak. Üç gün sonra patlayacaklar sonra birdaha öğrenmeye başlayacaklar zaman kaybedecekler felan..

    o yüzden diyorlar ki; anlatıyorsunuz madem pdo yada mysqli kullanın da ilk etaptaki arkadaşlarımızı doğru yönlendirelim..

    Başarılar diliyorum..