MySQL kullanan Session Sınıfı
Unutmadan yazmak istediğim bir kaç husus var. O yüzden de yarım birşey bırakmayım diye, tez çalışmamın içinden oturum sınıfımı çıkarıp, kullanılabilir hale getirdim. Bundan önceki yazımda mysql'in nasıl session için araç olacağını anlatmıştım. Şimdi ise bunu nasıl sınıf aracılığı ile yapacağımızı anlatalım.
PHP kodu
<?php /** Class oturum Copyright (C) 2009 Gündüz Can YILMAZ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. * @author Gündüz Can YILMAZ * @copyright 2010 * @version 1.0.0 * @access public * @site http://www.baglanti.net */ class oturum { function __construct(){ /* Session yöntemini değiştirmemize izin verdiriyoruz. İzinliyse kaldırabilirsiniz */ ); /* Oturum dizinin ilk parametresi sınıfı, ikincisi ise fonksiyonu belirtiyor */ /* 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 */ } function oturum_ac($depo,$oturum_ismi){ /* depo dosyaların tutulduğu klasör oturum ismi de PHPSESSID ama biz bunları kullanmayacaz */ global $baglanti; include('db_ayarlari.php.inc'); if($baglanti) { if(!$dbselect) { $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) { // 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; return (mysql_effected_rows()) ? true : false; } function temizlik($gecerlilik_suresi){ global $baglanti; return (mysql_effected_rows()) ? true : false; } } ?>

