Merhaba arkadaşlar.Basit bir sistem olan giriş-kayit sistemini sizlerini anlatıcam.
Not:Nelerin ne işe yaradığını yazının altında tek tek yazıcam.
İlk önce DBmizi ayarlıcaz.
uyesistemi.sql veya sorgulatarak veritanına aktarın;
Oluşturcağımız şeyler;
id > 11 Karakter AUTO_INCREMENT
kullanici_adi > 255 Karakter varchar
parola > 255 Karakter varchar
Kod: [Seç]
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Veritabanı: `uyeler`
--
-- --------------------------------------------------------
--
-- Tablo için tablo yapısı `uyesistemi`
--
CREATE TABLE IF NOT EXISTS `uyesistemi` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`kullanici_adi` varchar(255) COLLATE utf8_turkish_ci NOT NULL,
`parola` varchar(255) COLLATE utf8_turkish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=1 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Oluşturulcak Dosyalar;
- db.php
- index.php
- giris.php
- kayit.php
- cikis.php
1-)Veritanına bağlanmamız lazım.
db.php;
Veritabanımıza bağlandık.
2-)index.php > Şimdi index sayfamızı yapalım.
"name" değerleri hangi veririn gideceğini belirtir.
3-)kayit.php > Gelen verilere göre üye oluşturucaz.
Önce sayfamıza veritanı bilgilerini yazdığımız sayfamızı çağırıcaz.
Daha sonra kontrollerimizi yapıp kaydı oluşturucaz(boş alan varmı,geçerli mail adresimi,böle kullanıcı varmı vb)
4-) giris.php > Giriş sayfamızı yapıyoruz.
5-) cikis.php > Çıkışımızı yapıcaz.
$_SESSION > İle oturum kontrolu yapıyoruz.
setcookie > Cookie oluşturuyoruz.
require_once / include> Sayfa çağırıyoruz.
strip_tags ve htmlspecialchars > Güvenlik amaçlıdır.HTML etiketlerini silmeye yarar.
MD5 / SHA1 > Şifreleme yöntemidir.Önemli verileri korumak için kullanılır.Geriye çözülmez.Tavsiyem SHA1
session_destroy(); > Oluşturduğumuz oturum bilgilerini yok ediyor.
mysql_error() > hatayı ekrana yazıdırır.
Formlarda bulunan ;
action > Formun gönderileceği yani işlem yapılacak sayfa
method > Bilgilerin nasıl gönderileceğini belirtiyoruz.Bunun için iki tipimiz var bunlar GET ve POST.
Get >> Get ile gönderilen veriler urlde gözükür.Yani index.php?kullaniciadi=blabla şeklinde.
POST >> Post ile gönderilen veriler gösterilmeden yollanır.
Önemli Not: ob_start(); ve session_start(); her sayfada ve en üstte bulunmalıdır.Bunun için tavsiyem ayar sayfası gibi her sefer çağıracağınız sayfanın içine yazmanız.
db.php;
Kod: [Seç]
<?php
session_start();ob_start();$sunucu = "localhost"; //sunucu$kullanici = "root"; //veritabani kullanici adi$parola = ""; // veritabani sifresi$veritabani = "uyesistemi";// veritabani ismi $baglanti = mysql_connect($sunucu, $kullanici, $parola);
if(!$baglanti) die("MySQL sunucusuna baglanti saglanamadi!");mysql_select_db($veritabani, $baglanti) or die ("Veritabanina baglanti saglanamadi!");mysql_query("SET NAMES 'utf8'");mysql_query("SET CHARACTER SET utf8");mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' ");?>
Veritabanımıza bağlandık.
2-)index.php > Şimdi index sayfamızı yapalım.
Kod: [Seç]
//üye bölümünü yapalım
<form action="kayit.php" method="post">
<input type="text" name="kullanici_adi">
<input type="password" name="parola">
<input type="password" name="parolatekrar">
</form>
// giriş bölümünü yapalım
<form action="giris.php" method="post">
<input type="text" name="kullanici_adi">
<input type="password" name="parola">
</form>
"name" değerleri hangi veririn gideceğini belirtir.
3-)kayit.php > Gelen verilere göre üye oluşturucaz.
Önce sayfamıza veritanı bilgilerini yazdığımız sayfamızı çağırıcaz.
Kod: [Seç]
<?php require_once("db.php"); ?>
Daha sonra kontrollerimizi yapıp kaydı oluşturucaz(boş alan varmı,geçerli mail adresimi,böle kullanıcı varmı vb)
Kod: [Seç]
<?phpif($_SERVER['REQUEST_METHOD'] == "POST")//metodumuzu belirtiyoruz{$kullanici_adi= strip_tags(htmlspecialchars($_POST["kullanici_adi"]));$parola= strip_tags(htmlspecialchars($_POST["parola"]));$parolatekrar= strip_tags(htmlspecialchars($_POST["parolatekrar"]));
if($kullanici_adi=="" or $parola=="" or $parolatekrar=="") // boşluk kontrolu yapıyoruz.{ echo '
<p>Lütfen boş alan bırakmayın.</p>
'; header("refresh:2;url=kayit.php"); // sayfayı yonlendiriyoruz}
function checkmail($email){
return filter_var($email, FILTER_VALIDATE_EMAIL); //mail fonksiyonu}
if(!checkmail($email))
{ echo 'Yazdığınız e-posta adresi geçersiz!</p> //geçerli bir mail adresimi ona bakıyoruz
'; header("refresh:2;url=kayit.php");
}else{// burada başka bir üye tarafından email adresi kullanılıyormu ona bakıyoruz.$eposta_kontrol = mysql_query("select * from uyesistemi where email='".$email."'") or die (mysql_error());$eposta_varmi = mysql_num_rows($eposta_kontrol);
if($eposta_varmi > 0)
{ echo 'E-Posta başka bir üye tarafından kullanılıyor!; // hatamızı gösteriyoruz.
header("refresh:2;url=kayit.php");
}else{
//herşey tamamsa kaydımızı gerçekleştiriyoruz.
$yenikayit = "INSERT INTO uyesistemi (kullanici_adi, parola) values ('".$kullanici_adi)."','".md5($parola)."')";
$sorgu = mysql_query($yenikayit);
echo ' <p>Kayıt işlemi tamamlandı.Şimdi yönlendiriliyorsunuz...</p> ';
header("refresh:2;url=giris.php");
}
}
mysql_close();
ob_end_flush();
// fonksiyonlarımızı kapatıyoruz
}
}
?>
4-) giris.php > Giriş sayfamızı yapıyoruz.
Kod: [Seç]
<?phpif($_SERVER['REQUEST_METHOD'] == "POST")
{$kullanici_adi= strip_tags(htmlspecialchars($_POST["kullanici_adi"]));$parola = strip_tags(htmlspecialchars(md5($_POST["parola"])));
if($email=="" or $parola=="") // boşluk kontrolu{ echo '<p>Kullanıcı adını ve şifrenizi lütfen boş bırakmayın.</p>
'; header("refresh:2;url=giris");
}else{// bilgilere göre kontrolleri yapıp giriş bilgilerimizi oluşturcaz.$sorgula = mysql_query("SELECT * FROM uyesistemi WHERE kullanici_adi='{$kullanici_adi}' and parola='{$parola}'") or die (mysql_error());$uye_varmi = mysql_num_rows($sorgula);
if($uye_varmi > 0) //üye var ise{$_SESSION["giris_var"] = "true"; // sessionlarımı oluşturuyoruz$_SESSION["kullanici_adi"] = $kullanici_adi;$_SESSION["parola"] = $parola;setcookie("kullanici_adi",$email,time()+60*60*24);setcookie("parola",$parola,time()+60*60*24);
echo '
<p>Giriş başarılı.Şimdi yönlendiriliyorsunuz...</p>
'; header("refresh:2;url=index.php");
exit();
}
else
{ // eğer kullanıcı bilgileri eşleşmediyse hatamızı veriyoruz.echo'
Böyle bir kullanıcı bulunmamaktadır.
';header("Refresh: 2; url=giris.php");
}
}
}
} ?>
5-) cikis.php > Çıkışımızı yapıcaz.
Kod: [Seç]
<?php
ob_start();session_start();session_destroy();// Burada oluşturduğumuz bilgileri siliyoruz.setcookie ("kullanici_adi", "", time() - 3600);setcookie ("parola", "", time() - 3600);
echo ">Çıkış yapılıyor lütfen bekleyin...";header("Refresh: 1; url=index.php");ob_end_flush();?>
$_SESSION > İle oturum kontrolu yapıyoruz.
setcookie > Cookie oluşturuyoruz.
require_once / include> Sayfa çağırıyoruz.
strip_tags ve htmlspecialchars > Güvenlik amaçlıdır.HTML etiketlerini silmeye yarar.
MD5 / SHA1 > Şifreleme yöntemidir.Önemli verileri korumak için kullanılır.Geriye çözülmez.Tavsiyem SHA1
session_destroy(); > Oluşturduğumuz oturum bilgilerini yok ediyor.
mysql_error() > hatayı ekrana yazıdırır.
Formlarda bulunan ;
action > Formun gönderileceği yani işlem yapılacak sayfa
method > Bilgilerin nasıl gönderileceğini belirtiyoruz.Bunun için iki tipimiz var bunlar GET ve POST.
Get >> Get ile gönderilen veriler urlde gözükür.Yani index.php?kullaniciadi=blabla şeklinde.
POST >> Post ile gönderilen veriler gösterilmeden yollanır.
Önemli Not: ob_start(); ve session_start(); her sayfada ve en üstte bulunmalıdır.Bunun için tavsiyem ayar sayfası gibi her sefer çağıracağınız sayfanın içine yazmanız.