[linux-programlama] Rv: Re: Oturum Yonetimi

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Eralp (eralp@prestijsoftware.com)
Date: Tue 01 Jun 2004 - 11:46:20 EEST


   
   Salom!
 
   Gonderilen mailin cevap niteliginde bir mail olmadigi !! zaten subject
kisminda ki aciklamadan da anlasilabilirdi..Grubu sadece bunaltici sorular
sorarak sikmak yerine biraz da bilgi verici metinler gondermenin bircok
insana (siz haric) daha da faydali olacagi kanaatindeyim..Eger
yazdiklarinizin okunmasini istemiyorsaniz sahislara mail atarak bu
sorununuzugidermis olursunuz,grub a degil!
Dunya ! Dunyasi olmayan bir yaratik dunya nin ne demek oldugunu nerden
bilipte telafuz eder,saskinlik verici !Estagfirullah sizede
efendim,sizede...:)

Saygilarimla..

Eralp Erat
Programmer &IT Cons.
HIMS
eralp@prestijsoftware.com[1]
www.prestijsoftware.com[2]

----

--------- Orjinal mesaj -------- Kimden: linux-programlama@liste.linux.org.tr Kime: "linux-programlama@liste.linux.org.tr" <linux-programlama@liste.linux.org.tr> Konu: [linux-programlama] Re: Oturum Yonetimi Tarih: 31-05-04 15:37

Merhabalar... Bu dokumani gonderme sebebiniz kisileri bilgilendirme amacli ise bundan sonra yazacaklarimi okumayiniz .. Yok eger benim sorumun ustune yazilmis bir cevap ise boyle bir mail atmaniza hic gerek yoktu Sizden boyle bir istekte bulunulmadi Arti sorulan soru ile alakasi olmayan bir mevzuda bir cevap vermis bulunuyorsunuz. calisan bir oturum yonetimi mekanizmasinin mevcut oldugunu zaten soylemistim guvenligi konusunda sorularim mevcuttu

g&#305;nderdiginiz uygulama cookie ile calisan uygulamalardan ... ben ise itinayla cookie kullanimindan kacmak istiyorum zaten bunu da ozellikle belirtmistim

neyse yinede bu gonderdiginiz maili kisileri bilgilendirme amacli gonderilen bir kategoriye sokuyorum ...

kendi dunyanizda size iyi calismalar diliyorum ...

On Sat, 29 May 2004 19:11:20 +0300, Eralp wrote >=D6ncelikle veritaban=FDm=FDzda sessions isimli bir tablo >yaratal=FDm : > >CREATE TABLE `sessions` ( >`username` varchar(50) NOT NULL default '', >`sessid` varchar(102) NOT NULL default '', >`logonned` int(20) NOT NULL default '0', >PRIMARY KEY (`username`) >) TYPE=3DMyISAM; > >=FEimdi =F6ncelikle kullan=FDc=FDn=FDn login olurken kullanaca=F0=FD >= sessstart fonksiyonunu yazal=FDm : > >function sessstart($kullanici,$db_baglan) { > >//e=F0er ayn=FD kullan=FDc=FD ismiyle ba=FEka bir kullan=FDc=FD >login = olmu=FEsa bunu sistemden atal=FDm. Bu sayede ayn=FD anda >login olan iki kullan=FDc=FD engelleniyor. >$delete=3Dmysql_query("DELETE FROM sessions WHERE >username=3D'$kullanici'",$db_baglan); > >//i=E7inde bulundu=F0umuz an=FD timestamp cinsinden alal=FDm >$suan_timestamp=3Dmktime(); > >//ayn=FD oturum id'sinin ba=FEka kullan=FDc=FDlara da verilmesini = >engellemek >i=E7in bir do while d=F6ng=FCs=FCyle kontrol yap=FDyoruz.=20 >do { > >//kendimize bir oturum id'si =FCretelim >$sessid=3D md5(uniqid(microtime(), 1)) . getmypid (); >//bu oturum id'si ba=FEka birine atanm=FD=FE m=FD? >$control=3Dmysql_query("SELECT sessid FROM sessions WHERE >sessid=3D'$sessid'",$db_baglan); >} while( mysql_num_rows($control)>0) ;=20 > >//e=F0er =FCretti=F0imiz id "unique" ise kullan=FDc=FDn=FDn login = >i=FElemini >veritaban=FDna i=FEleyelim >$insert=3Dmysql_query("INSERT INTO `sessions` (`username`, `sessid`, >`logonned`) VALUES ('$kullanici', '$sessid', >$suan_timestamp);",$db_baglan); > >//oturum id'sini cookie olarak istemci browser'=FDna g=F6nderelim >setcookie("sessid",$sessid,0); >} > >bu fonksiyonda =FEifre kontrol=FC gibi =FEeylere yer verilmedi=F0ini >g=F6r=FCyorsunuz. Bu t=FCr =FEeyler ihtiya=E7lara g=F6re eklenmelidir. > >En =F6nemli fonksiyonlardan biri sesscontrol ise =FEu =FEekildedir : > >function sesscontrol($sessid,$db_baglan) { > >//t=FCm kullan=FDc=FDlar i=E7in genel kontrol 10 dakika i=FElem >yapmayan = at=FDlacak $suan_timestamp=3Dmktime(); > >$timestamp=3D$suan_timestamp-1200; // 1200=3D60sn x 10dk bu de=F0er >istenildi=F0i =FEekilde de=F0i=FEebilir. > >//son i=FElemini 10 dakika =F6ncesine dek yapm=FD=FE >kullan=FDc=FDlar = at=FDl=FDyor. $at_query=3Dmysql_query("DELETE >FROM sessions WHERE logonned <$timestamp",$db_baglan); > >//tamamd=FDr > >//i=FElemini ya=F0t=FD=F0=FDm=FDz kullan=FDc=FD halen sistemde mi?=20 >$sessquery=3Dmysql_query("SELECT username FROM sessions WHERE >sessid=3D'$sessid'",$db_baglan); >if (mysql_num_rows($sessquery)<>0){ >//evet sistemde >$array=3Dmysql_fetch_row($sessquery); >$login=3D$array[0]; > >//veritaban=FDndaki logonned alan=FDn=FD =FEu anki zamana g=F6re = >g=FCncelliyoruz >$update=3Dmysql_query("UPDATE `sessions` SET `logonned` =3D = >$suan_timestamp >WHERE `username` =3D '$login' AND `sessid` =3D'$sessid'",$db_baglan);=20 >//kullan=FDc=FD ismini fonksiyondan ihra=E7 ediyoruz >return $login; >} else { >//kullan=FDc=FD sistemde de=F0il >//oturum id'sini kullan=FDc=FD browser'=FDndan siliyoruz >setcookie("sessid","",0); > >} >} > >bu fonksiyonun kullan=FDm=FD =FEu =FEekilde olacakt=FDr : > >oturum kontrol=FC yapmak istedi=F0imiz sayfan=FDn ba=FE=FDnda=20 > >$kullanici=3Dsesscontrol($HTTP_COOKIE_VARS['sessid'],$db_baglan); > >gibi bir ifade kullan=FDr=FDz. E=F0er $kullanici de=F0i=FEkeni bir = >de=F0er al=FDyorsa >sistemde login olmu=FE kullan=FDc=FD var demektir e=F0er bo=FE bir = >de=F0er d=F6n=FCyorsa >login olmu=FE kimse yok demektir. > >En basit fonksiyonumuz ise logout i=FEleminde kullan=FDlacak sessdestroy >fonksiyonu : > >function sessdestroy($kullanici,$db_baglan) { > >//kullan=FDc=FDn=FDn login i=FElemini veritaban=FDndan silelim >$delete=3Dmysql_query("DELETE FROM sessions WHERE >username=3D'$kullanici'",$db_baglan); >setcookie("sessid","",0); > >} > >bu fonksiyon hi=E7 bir de=F0er d=F6nd=FCrmez. > >Bu t=FCr i=FElemler i=E7in veritaban=FD kullanmam=FDz=FDn en >=F6nemli = sebebi sitede o an bulunan ki=FEileri listelemekte >sa=F0layaca=F0=FD kolayl=FDkt=FDr.

--- Links --- 1 mailto:eralp@prestijsoftware.com 2 http://www.prestijsoftware.com


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.