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

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 Sorunusql 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.
, yaramaz derken?
, 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