ana sayfa > Genel, Php > Php ile Oturum Yönetimi

Php ile Oturum Yönetimi

Üyelik sistemlerinin temelini oturum yönetimi oluşturur. İlk olarak sql adında veritabanımızı oluştururuz. veritabanımızı oluşturduktan sonra 3 sütunlu uyeler isimli tablomuzu oluşturuyoruz. Bunun için aşağıdaki sql sorguyu kullanıyoruz.

CREATE TABLE `uyeler` (
`uyeno` SMALLINT( 6 ) NOT NULL AUTO_INCREMENT ,
`uyead` VARCHAR( 20 ) NOT NULL ,
`uyesifre` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `uyeno` )
) TYPE = MYISAM ;
INSERT INTO `uyeler` ( `uyeno` , `uyead` , `uyesifre` )
VALUES (
'', 'deneme', '8cb2237d0679ca88db6464eac60da96345513964'
);

Üyemizin adı “deneme” şifresi ise “12345” tir. Üyemizin adını kodumuzda deneme olarak görüyoruz. Fakat şifremizi karışık rakamlar ve harfler şeklinde görüyoruz. Bu güvenliğimiz için alınmış bir önlemdir. Veri tabanına bizim iznimiz olmadan bir erişim olursa üyelerimizin şifreleri elde edilemez.

İlk olarak index.php sayfamızı oluşturalım:

<?php
session_start(); // oturumu başlatıyoruz
if(!isset($_SESSION['uye'])) { // eğer üye giriş yapmamış ise
/*
html komutlarını rahat bir şekilde yazmak için
php etiketini kapatıyoruz.
*/
// sayfanın içeriğini görmek için buradaki girişleri yapmalıdır.
?>
Bu sayfanın içeriğini görebilmek için üye girişi yapmalısınız.
<form action="giris.php" method="post">
<input type="text" size="20" name="uyead" id="uyead" /><br />
<input type="password" size="20" name="sifre" id="sifre" /><br />
<input type="submit" id="giris" value="Giriş Yap" />
</form>
<?php
exit();
} else {
/* üye giriş yapmışsa hoşgeldin diyelim */
echo "Hoşgeldiniz Değerli Üyemiz " . $_SESSION['uye'] . "";
/*çıkış yapmak için tıklayınız*/
echo 'Çıkış Yapmak İçin <a href="cikis.php">Tıklayın</a><br/>'; //cikis.php ye yönlendiriliyorsunuz
}
?>

Bu sayfa içeriği olarak ziyaretçimiz üye girişi yapmış ise hoş geldin diyoruz. Üye girişi yapmamış ise üye girişi yapması gerektiğini belirterek giriş yapması için üye giriş formumuzu gösteriyoruz.
Kodlarda yaptığımız açıklamalardan da yola çıkarak ilk olarak session_start(); ile oturum başlatıyoruz. Eğer mevcut bir oturum varsa oturumun devam etmesini sağlıyoruz. Sonra isset() fonksiyonu ile oturum değişkenimizi kontrol ediyoruz. Oturum yoksa üye giriş formu, varsa hoşgeldiniz diyerek oturumu başlatıyoruz.

Sırada giris.php sayfamızı oluşturmaya geldi. giris.php sayfamızı oluşturalım:<>

<?
session_start(); //oturum başlatılıyor

mysql_connect("localhost","root","") or die("mysqle bağlanılamıyor"); //root adlı kullanıcı yok ise mysqle bağlanamıyorsunuz

mysql_select_db("sql") or die("veritabanı seçilemiyor"); //veri tabanınızda böle bir veritabanı oluşturulmadığından veritabanı seçilemiyor

$uyead = strip_tags(mysql_real_escape_string($_POST['uyead'])); //üye adını kötü huylu kişilerden korumak için alınmış bir önlemdir(-->,",' bu tür saldırıları engellemek için)

$sifre = strip_tags(mysql_real_escape_string($_POST['sifre']));// şifreyi kötü huylu kişilerden korumak için alınmış bir önlemdir(<,>,",' bu tür saldırıları engellemek için) 

if($sifre == "" || $uyead == "") {
echo "Lütfen Tüm Alanları Doldurun"; // eğer üye adı ve şifre boş işe boş alanları doldurunuz
} else { 

$sifre = sha1($sifre); //şifreyi şifreliyor

$sql = mysql_query("select uyead from uyeler where uyead='$uyead' and uyesifre='$sifre'"); //girilen üye adı ve şifre ile veritabanındaki ad ile şifre eşleştiriliyor

$uyevarmi = mysql_num_rows($sql); // böyle bir üye varmı sorgusu yapılıyor

if($uyevarmi == 0) { //eğer eşleşmiyorsa böyle bir üye yok ise 

echo "üyelik bilgileri bulunamadı, tekrar deneyin"; //üyelik bilgileri bulunamadı tekrar deneyin

} else { //eşleşiyorsa

$uyebilgi = mysql_fetch_assoc($sql); // veri tabanındaki bilgiler çözülür

$_SESSION['uye'] = $uyebilgi['uyead']; //oturum başlatılır

echo "admin sayfasına yönlendiriliyorsunuz";
echo "<script>location.href='admin.php';</script>"; // admin.php sayfasına yönlendiriliyorsunuz

} // if($uyevarmi == 0) kontrolü bitişi 

} // if($sifre == "" || $uyead == "") kontrolü bitişi
?>

giris.php sayfamızda ilk olarak oturumun devam etmesi için session_start() kullanıyoruz. Daha sonra mysql bağlantımızı yaparak veritabanımızı seçiyoruz. Form alanından gelen değişkenleri strip_tags() ve mysql_real_escape_string() fonksiyonlarını kullanıyoruz. Strip_tags() fonksiyonu etiketlerini temizlemek için kullanılır. mysql_real_escape_string() ise mysql için zararlı olabilecek kodları filtreler. Güvenlik önlemlerinden sonra uyead ve sifre kontrollerini yaparız. Eksik alan varsa uyarı verir. Şifremiz veritabanında sha1() ile şifrelenmiş halde kayıtlı olduğundan şifremizi yine sha1() çevirmek zorundayız. Yoksa kullanıcı doğru şifre girse bile şifreler birbirinden farklı olacağından yanlış şifre girdi olarak kabul edilir. Şifremizi sha1’e çevirdikten sonra mysql sorgumuzu oluşturduk.

Daha sonra yeni bir sayfa oluşturarak admin.php olarak kaydederiz.içerik olarak:

<?
include("index.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>

<body>
BURASI ADMİN SAYFASI
</body>
</html>

Son adım olarak üyemizin çıkış yapabilmesi için cikis.php sayfamıza ihtiyacımız var.

<?php
session_start();
unset($_SESSION['uye']); // oturumda olan değişkenimiz siliniyor
session_destroy(); // oturumları siler
echo "<script>location.href='index.php';</script>"; // index.php sayfasına yönlendiriliyorsunuz
?>

Böylelikle basit bir üyelik sistemi oluşturmuş olduk. Yardım almak için forumlarımızdan yararlanabilirsiniz. Kolay gelsin.

Bu kategorideki rastgele diğer yazılar
  • » LİGHTBOX2 EKLENTİSİ
  • » Php ile verileri gösterme
  • » ERROR: Failed to find flength file
  • » Php Admin Paneli
  • » Kira Hesaplama
  • » photoshop arka plan yapma
  • » Mysql Komutları - Fonksiyonları
  • » Sitenizde "Ads by romeoads . com" reklam görürseniz...
  • » MySQL Türkçe Karakter Sorunu
  • » Mysql Veri Türleri ve Anlamları
  • » PHP GET Temizleme Fonksiyonu
  • » Php Mail Gönderme
  • » Google ve Seo
  • » Photoshop Resimlere Yağmur Efekti Ekleme
  • » PHP tek mi çift mi?
    1. Selçuk
      Çarşamba, 29 Nis 2009 zamanında 11:29 | #1

      güzel anlatım ellerinize sağlık çok işime yaradı

    2. ilkay
      Salı, 05 May 2009 zamanında 23:47 | #2

      rica ederim işinze yaradıysa ne mutlu bana

    3. ahmet
      Salı, 30 Haz 2009 zamanında 06:26 | #3

      giris.php kısmında javascript yönlendirme kodunu nasıl dahil edeceğiz bilgi verebilirmisiniz

    4. Salı, 30 Haz 2009 zamanında 12:20 | #4

      yonlendirme için
      echo “location.href=’admin.php’;”;
      yazılabilir…
      eğer javascript engellenmişsede html destekli yonlendirme yapılabilir…

    5. Cuma, 05 Şub 2010 zamanında 00:52 | #5

      elinize sağlık güzel paylaşım birde bu paylaşıma md5 ile şifrenebilen üye kayıt sistemi eklenebilirse süper olur.

    6. Cuma, 05 Şub 2010 zamanında 23:20 | #6

      @tansu
      aslında şu an bende yeni oturum yönetimimle uğraşıyordum. bu yorum üstüne geldi. evet şifreleri md5 yaptıktan sonra, sha1 de yapıyorum, sonrada substr ile sadece belli yerlerini alıyorum. sanırsam artık şifreyi çözmek isteyenin eline kodlanmış şifremizi versek bile vatandaşlar uğraşmadan çözemezler :)
      $sifre=substr(sha1(md5($sifre)),15,5); gibi…
      bu arada eğer aynı sunucuda aynı programı kullanan birileri varsa bizim şifremize gerek kalmadan kendi sitelerinde açtıkları şifrelerlede sitemizde oturum açabiliyorlar :) bu da işin güzel tarafı… o yüzden sadece sitemize özel kodlama keyleri kulanmamız gerekiyor…
      bunların ayrıntısını sonra anlatırım…

    7. Marif
      Cuma, 02 Nis 2010 zamanında 22:14 | #7

      Merhaba,ben aşağıdaki kodlarda oturumu şifre sormadan direk mysql’e bağlanarak başlatmak istiyorum,nasıl yapabilirim.
      —————————-
      0) {
      header(“Location: giris.php”);
      }

      $tablo_login = “SELECT * FROM login”;
      $sorgu_login = mysql_query($tablo_login);
      if(empty($HTTP_POST_VARS)) {
      include “head.php”;
      ————————

    8. Cumartesi, 03 Nis 2010 zamanında 09:09 | #8

      @Marif
      Merhabalar… Açıkcası sorunuzu tam olarak anlayamadım.
      Eğer; oturum direk başlatmak istiyorsanız mysqle ihtiyacınız yok.
      $_SESSION['oturum']=”oturum açtık”;
      demeniz yeterlidir.

      Farklı bir bilgi için yeniden sorarsanız size yardımcı olmaya çalışırım.
      İyi günler…

    9. Cumartesi, 03 Nis 2010 zamanında 16:51 | #9

      Benim anlatmak istediğim mysqlim var.ama
      ——————-
      ben direk kullanıcı adı ve şifre sormadan oturumu başlatmak istiyorum.aşağıdaki kodlar üzerinden yorum yaparsanız memnun olurum.
      ———————-
      0) {
      header(\”Location: giris.php\”);
      }

      $tablo_login = \”SELECT * FROM login\”;
      $sorgu_login = mysql_query($tablo_login);
      if(empty($HTTP_POST_VARS)) {
      include \”head.php\”;
      —————————-

    10. Cumartesi, 03 Nis 2010 zamanında 19:39 | #10

      @marif
      Eğer kullanıcı adı ve şifre sormadan oturum başlatmak istiyorsanız mysqle bağlanmanızı gerek yok… aşağıdaki komutu yazdığınızda oturum açılmış olur.
      $_SESSION['oturum']=”oturum açtık”;

    11. Marif
      Cumartesi, 03 Nis 2010 zamanında 22:30 | #11

      Ama mysqle bağlanmadan nasıl oturum açılıyor.ben direk oturum açmadan haber ekle diyorum eklemiyor.Sanırım oturum açılmadığından eklemiyor olabilir mi?

      Teşekkürler

    12. Pazar, 04 Nis 2010 zamanında 12:31 | #12

      @Marif
      Oturum açmak ile habere kayıt eklemek farklı şeylerdir. Kullandığınız haber ekleme scripti içerisinde oturum kontrolü varsa mutlaka o oturum şartlarına uymanız gerekir.
      benim sitemde anlattığım basit bir haber ekleme scripti var… onda oturum kontrolü gerekmiyor… ancak oturum kontrol için yer ayrılmış durumda inceleyebilirsiniz..
      dediğim gibi haber eklemek ayrı bir şey, oturum kontrol etmek ayrı bir şey…

      http://www.dahiweb.com/php-haber-scripti-2

    13. cansu
      Cuma, 23 Nis 2010 zamanında 21:36 | #13

      günlerdir böyle bir örnek arıyorum. çok teşekkürler yazı için.

    14. acipinarli2
      Perşembe, 06 May 2010 zamanında 21:38 | #14

      hocam çok teşekkürler. bu konu o kadar yardım etti ki bana. size attığım maillerdeki sorunu çözdüm sonunda. :)

    15. Cumartesi, 08 May 2010 zamanında 11:54 | #15

      @acipinarli2
      sevindim… yardımcı olabildiysek ne mutlu bize…

    16. Perşembe, 10 Haz 2010 zamanında 22:10 | #16

      Teşekkürler Güzel bir çalışma olmuş. Fakat admin girişi yapıldıktan sonra tekrar index.php dosyasına girmek istediğimde boş sayfa ile karşılaşıyorum. Ben direk giriş yapılmışmı kontrol edilip giriş yapılmışsa anasayfama yönlendirmek istiyorum. Nasıl yapabilirim.

    17. Cuma, 11 Haz 2010 zamanında 19:20 | #17

      @Cengizhan
      i f(!isset($_SESSION['uye']))
      { // eğer üye giriş yapmamış ise kodlar burada olacak}
      el se
      {ec ho ” (b) script (k) location.href=’index.php’; (b) /script(k)”; }
      aradaki boşlukları almayı ve (b) > (k) < yapmayı unutmayın…

    18. Salı, 22 Haz 2010 zamanında 11:38 | #18

      Çok Teşekkürler Mustafa Bey.

    19. Çarşamba, 23 Haz 2010 zamanında 06:13 | #19

      PHP5 üzerinde bu kodlar sorunsuz çalışıyor mu arkadaşlar? Paylaştığınız için teşekkür ederim.

    20. Çarşamba, 23 Haz 2010 zamanında 23:18 | #20

      @havacılık haberleri
      evet kodlar çalışıyor…

    1. Pazartesi, 11 Oca 2010 zamanında 23:51 | #1
    2. Perşembe, 29 Nis 2010 zamanında 13:16 | #2

    *
    Bu bir spamlara karşı koruma yazılımıdır, resimde gösterilen güvenlik kelimesi girilmelidir. Kelimeyi sesli duymak için resmi tıklayın
    Anti-spam kelimeyi duymak için tıklayın