PHP Giriş Kayıt Sistemi

2 okuma süresi

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
Dosyalarımızı oluşturduktan sonra kodlarımızı yazıcaz.

1-)Veritanına bağlanmamız lazım.
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_adistrip_tags(htmlspecialchars($_POST["kullanici_adi"]));$parolastrip_tags(htmlspecialchars($_POST["parola"]));$parolatekrarstrip_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($emailFILTER_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_adistrip_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.


                                                      

Etiketler