25
Aralık
2009

PHP: Hafta 7

Bu hafta genel olarak sessionları tekrar ettik. Bunun dışında bazı teknolojilerden ve biraz da bitirme projesinden bahsettik. Bitirme projesinin son teslim tarihinin 7 Ocak 2010 Perşembe olduğunu unutmayınız. Projeye buradan ulaşabilirsiniz.

Bugünkü tekrar sonucunda sessionlar ve veri tabanı kullanarak basit bir oturum açma sistemi tasarladık derste. Ödev için de oldukça kullanışlı olabilecek, sessionsların kullanımına güzel bir örnek olan kaynak kodlarını bu yazının sonunda bulabilirsiniz.

Gelecek hafta Salı günü için bir ek ders planlandı, ancak kesin bir şey yok şu noktada. O gün boş laboratuvar olup olmadığını öğrendikten sonra netleşecek. Duyuru yapacağım.

24 Aralık Perşembe günü laboratuvarda yazdığımız kodları buradan indirebilir, ya da indirmeden incelemek isterseniz yazının devamına bakabilirsiniz. (Kodlar daha anlaşılır olması için biraz daha düzenlenmiştir.)

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php 
   /* DİKKAT: Bu koddaki oturum açma sistemi, gerçek bir PHP
   projesinde kullanılamayacak kadar dış etkilere açık olduğundan
   kodu dikkatli kullanmanızı öneririm. */
   header("Content-Type: text/html; charset=utf-8"); 
   session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="tr-TR">
<head profile="http://gmpg.org/xfn/1">
   <!-- EgeBK PHP Kursu Örnek Kaynak Kodları -->
   <title>Basit Bir Oturum Açma Programı</title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <meta http-equiv="author" content="Umut Benzer" />
</head>
<body>
<form action="index.php" method="post">   
   <label for="name">Kullanıcı adı</label> 
   <input type="text" id="name" name="name" size="10" />
   <label for="pass">Şifre</label>
   <input type="text" id="pass" name="pass" size="10" />
   <button type="submit">Yallah</button>         
</form>
<?php
/* İnit */
 
// ezSQL
include_once "ez_sql_core.php";
include_once "ez_sql_mysql.php";
 
// Veritabanı yapılandırması
$vt_kullanici="root";
$vt_parola="";
$vt_isim="kullanici";
$vt_sunucu="localhost";
 
// ezSQL sınıfından bir nesne...
$db = new ezSQL_mysql($vt_kullanici,$vt_parola,$vt_isim,$vt_sunucu);
 
// Dil ayarlaması
$db->query("SET NAMES utf8");
 
/* Oturum kapatma bilgisi gönderilmiş */
if(isset($_GET["cikis"]) && $_GET["cikis"] == 1) {
   $_SESSION["kullanici_id"] = NULL;
   $_SESSION["kullanici_adi"] = NULL;
}
 
/* Oturum açma bilgisi gönderilmiş */
if(isset($_POST["name"]) && isset($_POST["pass"])) {
   // Güvenlik önlemleri
   $name = $db->escape($_POST["name"]);
   $pass = $db->escape($_POST["pass"]);
 
   $sql = "SELECT * FROM `kullanici` WHERE name='".$name."' AND pass='".$pass."'";
   echo "Yaratılan SQL cümleciği: " . $sql . "<br />\n";
   $sonuc = $db->get_row($sql);
 
   if(!is_null($sonuc)) {
      $_SESSION["kullanici_id"] = $sonuc->id;
      $_SESSION["kullanici_adi"] = $sonuc->name;
   } else {
      $_SESSION["kullanici_id"] = NULL;
      $_SESSION["kullanici_adi"] = NULL;
      echo "Kullanıcı adı veya şifre yanlış!" . "<br />";
   }
}
 
/* Oturum açılmış mı kontrolü */
if(isset($_SESSION['kullanici_adi']) && !is_null($_SESSION['kullanici_adi'])) {
   echo "Oturum açan kullanıcı: " . $_SESSION['kullanici_adi'] . " Oturumu kapatmak için <a href='?cikis=1'>tıkla</a>.";
} else { 
   echo "Naber ziyaretçi?";
} 
 
/* SESSION süperdeğişkeninde neler olup bitiyor? */
echo "<br />";
echo var_dump($_SESSION);
?></body>

Veri Tabanı Yapısı (SQL)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Dec 24, 2009 at 09:09 PM
-- Server version: 5.1.36
-- PHP Version: 5.3.0
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
 
 
/*!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 */;
 
--
-- Database: `kullanici`
--
CREATE DATABASE `kullanici` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `kullanici`;
 
-- --------------------------------------------------------
 
--
-- Table structure for table `kullanici`
--
 
CREATE TABLE IF NOT EXISTS `kullanici` (
  `name` text NOT NULL,
  `pass` text NOT NULL,
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
 
--
-- Dumping data for table `kullanici`
--
 
INSERT INTO `kullanici` (`name`, `pass`, `id`) VALUES
('Hayrullah', 'abc', 2),
('Sercan', 'def', 3),
('Rıfkı', '123', 4),
('Müge', 'wasd', 11);
bu yazı 2.408 defa okundu

Site hoşunuza gitti mi? Belki arkadaşlarınızın da gider.

İstekli

Aaa Reklam

Yorumunuzu Bırakın

Bu yazıya gönderilen yeni yorumları e-posta aracılığıyla bana bildir
Yeni gönderilenleri yorum yapmadan takip etmek için tıklayınız.

Yorumunuz başarıyla alındı. Onaylandıktan sonra yayımlanacaktır. Teşekkürler.

Twitler yükleniyor... 5 saniye sonra

Bıdı bıdı bıdı bıdı dıdı dıdı dudu dudu hıdı hıdı hödü hödü yüklüyoruz öhüm öhüm bıdı bıdı vs vs... 6 nanosaniye önce

Yüklenmenin geç olmasının sebebi ben değilim, Twitter API'sinin yavaş olması. Gudu gudu hıdı hödö büdü büdü... 25697 asır önce

Ha tabi bunları okumuşsan, bu sitenin çok gizli bir özelliğini bulmuşsun demektir. ;) Tebrikler. Bu "sürpiz yumurta"yı bulduğunu bana da haber verir misin? Tıkla! 6 dinazor önce

Geçen Yıllarda Bu Hafta

2011

Bunun Burada Ne İşi Var?

Bunun Burada Ne İşi Var?

Dün şehre inmek için Sayın Menderes Türel’in zamanında Hafif Metro ...

Windows 7’de Bilgisayarınızın Aldığı Puanı Değiştirin

Windows 7’de Bilgisayarınızın Aldığı Puanı Değiştirin

Biliyorsunuz Microsoft, Windows Vista’dan bu yana bilgisayarlar için bir performans ...

Dördüncü Sınıfın Birinci Döneminden Öğrenci Görüşleri

Dördüncü Sınıfın Birinci Döneminden Öğrenci Görüşleri

Dördüncü sınıfın yarısı bitti. Okuldan mezun olmak üzereyim. İyisiyle kötüsüyle bir ...

UBenzer’den Alın!

UBenzer’den Alın!

Ablam evdeki kullanılmayanları ayırmış, “Umut bunları sat.” dedi. Hazır elime ...

2009

Kısık Işık

Kısık Işık

Tavana asılmış tek beyaz floresan lambayı sevemedim bir türlü… “Ben ...

Antalya Toplu Taşıma Sisteminin Sorunları - 1

Antalya Toplu Taşıma Sisteminin Sorunları - 1

Antalya’da ulaşım bir ölüm. Trafik sıkışıklığı, haftada bir yönü değişen ...

2008

14 Şubat

14 Şubat

Biliyorsun bugün 14 Şubat. Daha iki gün öncesinden hazırdı zaten ...

Uyumadan Önce Son Boşluk

Uyumadan Önce Son Boşluk

Uykuya dalmadan önce düşünürüm… Kötü alışkanlıklarımdan biridir. Aklıma ne gelirse ......

NES Emulatörleri

NES Emulatörleri

Daha önceki şu iki yazımda (1.si, 2.si), çocukken bolca oynadığımız ...

Son Yorumlar