. * @author Gündüz Can YILMAZ * @copyright 2010 * @version 1.0.0 * @access public * @site http://www.baglanti.net */ class oturum { function __construct(){ ini_set('session.save_handler', 'user'); /* Session yöntemini değiştirmemize izin verdiriyoruz. İzinliyse kaldırabilirsiniz */ session_set_save_handler(array('oturum', 'ac'), array('oturum', 'kapat'), array('oturum', 'oku'), array('oturum', 'yaz'), array('oturum', 'yoket'), array('oturum', 'temizlik') ); /* Oturum dizinin ilk parametresi sınıfı, ikincisi ise fonksiyonu belirtiyor */ register_shutdown_function('session_write_close'); /* PHP 5.0.5 ten bu yana, oturum bilgisi sınıflar yok edildikten sonra kaydediliyor. O yüzden eğer bu fonksiyonu kullanıp da sonlanmadan önce yapılacak şiler arasına oturumun kaydedilmesini eklemezsek sınıfımızı kullanamıyoruz */ session_start(); } function oturum_ac($depo,$oturum_ismi){ /* depo dosyaların tutulduğu klasör oturum ismi de PHPSESSID ama biz bunları kullanmayacaz */ global $baglanti; if(!is_resource($baglanti)){ include('db_ayarlari.php.inc'); $baglanti = @mysql_connect($adres, $kullanici, $sifre); if($baglanti) { $dbselect = @mysql_select_db($veritabani); if(!$dbselect) { @mysql_close($baglanti); $baglanti = $dbselect; } return $baglanti; } return false; } return $baglanti; } function kapat() { return true; } function oku($sessid) { global $baglanti; $sorgu = mysql_query("SELECT veri FROM oturum WHERE sessid = '".mysql_real_escape_string($sessid)."' LIMIT 1",$baglanti); if($sorgu!==false) { $veridb=mysql_fetch_assoc($sorgu); // veri okunduğunda da oturum süresi uzatılması istenirse mysql_query("UPDATE oturum SET sonerisim=".time()." WHERE sessid = '".mysql_real_escape_string($sessid)."' LIMIT 1",$baglanti); return $veridb['veri']; } return false; } function yaz($sessid,$veri){ global $baglanti; mysql_query("REPLACE INTO oturum SET sessid = '".mysql_real_escape_string($sessid)."', sonerisim = ".time().", veri = '".mysql_real_escape_string($veri)."'",$baglanti); return (mysql_effected_rows()) ? true : false; } function yoket($sessid) { global $baglanti; mysql_query("DELETE FROM oturum WHERE sessid='".mysql_real_escape_string($sessid)."'"); return (mysql_effected_rows()) ? true : false; } function temizlik($gecerlilik_suresi){ global $baglanti; mysql_query("DELETE FROM oturum WHERE sonerisim < '".(time()-$gecerlilik_suresi)."'",$baglanti); return (mysql_effected_rows()) ? true : false; } } ?>