Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
06, 2008, 08:08:08 pm
42719 Mesaj 8080 Konu Gönderen: 17918 Üye
Son üye: tlord
Turk-Php.Com Forum  |  Yardım Forumları  |  PHP Yardım Forumu  |  lanet oturum nedir ve nasil kontrol edilir? « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: lanet oturum nedir ve nasil kontrol edilir?  (Okunma Sayısı 368 defa)
SniperScope
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 5


Üyelik Bilgileri
lanet oturum nedir ve nasil kontrol edilir?
« : 09, 2008, 09:29:21 am »

Oncelikle sunu belirtmek isitoyrumki; hayatimda php nin session muhabbeti kadar lanet duzeyde zor birseyle karsilasmadim. Yaklasik 10 gun dur butun interneti arayip taradim ama elde olan
session_start()
session_register()
... vs. heryerde hep ayni basma kalip muhabbet, once session_start yap sonra session_register yap is tamam.

Arkadaslar bu oturum illetini adam akilli anlatacak biri yokmu ?

1 - oturum degeri nasil diger sayfalara tasinir ?
2 - oturum degiskenlerini kullanici giris yapmissa veri tabaninda kayitli olan kullanici adi ve sifre nasil atanir ?
3 - neden browseri kapatip actigim halde kullanici paneline giris yapabiliyorum ?
4 - neden session_destroy yaptigim halde sifre degistirme bolumune girebiliyorum ?
5 -
Kod:
<?php
$randomsessionid
=md5(microtime());
session_register("randomsessionid");
?>
ile urettigim rastgele sayiyiyi veri tabanina nasil kayit ettirebilirim ?
6 - neden baska bir kullanici adi ile giris yaptigim halde sayfanin kodlari uzerinde halen ve israrla eski girilen isim gorunuyor?
Daha onlarca NEDEN ile baslayan sorum var.
Lutfen bilen birileri anlatabilirmi.
« Son Düzenleme: 09, 2008, 09:31:21 am Gönderen: SniperScope » Logged
SniperScope
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 5


Üyelik Bilgileri
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #1 : 09, 2008, 10:14:47 am »

diger bir sorum; kullanici yeni kayit olurken, veri tabanindaki User_Id tablosuna bakip en yuksek rakami bulup buna bir ekleyip o sekilde kayit ettirmek istiyorum nasil yapabilirm ? Cry Cry

ornegim suan siteye 100 kisi kayitli, yeni kayit olacak kisi 101. kisi olacak. Yani c=100; c++;
tesekkurler.
Logged
bndrs
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 53



Üyelik Bilgileri WWW
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #2 : 09, 2008, 11:08:17 am »

Selam,
Session sunucuda doya oluşturup değerleri o dosyaya yazıp değerlendirir zaten biliyorsun.

O dosyayıda session_id ile bilir ve bulur bütün karmaşa işte burada!

Ya cookie kullanıp bu session_id'yi hatırlar yada sen bütün linklerinde bu session_id'yi belirtmelisin.

Bu dandik durum için

1- session.use_cookies = Off (php.ini parametresi)
2- session.bug_compat_42 = On
3 Linklerin tümünde ssion_id belirtilecek. php.ini'de session_name = "PHPSESSID" genelde ./xx.php?PHPSESSID=asda4d43a2a2s324dsd gibi
Logged

kertenkele
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 26



Üyelik Bilgileri WWW
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #3 : 09, 2008, 02:09:51 pm »

diger bir sorum; kullanici yeni kayit olurken, veri tabanindaki User_Id tablosuna bakip en yuksek rakami bulup buna bir ekleyip o sekilde kayit ettirmek istiyorum nasil yapabilirm ? Cry Cry

ornegim suan siteye 100 kisi kayitli, yeni kayit olacak kisi 101. kisi olacak. Yani c=100; c++;
tesekkurler.

insert sorgusunda id sutununa işlenecek değeri boş bırakırsanız veya INSER INTO uyeler (id,user) VALUE ('','$uye') şeklinde yaparsanız son idyi kendisi alır.
Logged

bendeseni
Arya Emini
PHP Stajyeri
**
Offline Offline

Mesaj Sayısı: 218


Şebnem Ferah Fanatiği


Üyelik Bilgileri WWW
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #4 : 10, 2008, 02:26:14 am »

Şayet gerekli bölüm auto_increment ise öyle olur. Auto_increment değilse SniperScope dediğin şey mümkün. Şayet değilse en basite indirgenmişi böyle olur.

Kod:
$SonUyeSor = mysql_query("SELECT MAX(User_id) AS EnBuyuk FROM uyeler_tablosu");
$SonUye = mysql_result($SonUyeSor,0,'EnBuyuk');
$SiradakiUye = SonUye + 1;

Bu arada hoşgeldin uurcum.
Logged

İLGİ olmadan BİLGİ olmaz...
www.sebnemferahfan.com
kertenkele
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 26



Üyelik Bilgileri WWW
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #5 : 10, 2008, 03:33:43 am »

Hoşbulduk Aryacım.

ID bölümünün Auto_increment olduğunu varsayarak söyledim tabi. Smiley
Logged

mumincelik
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 127


Üyelik Bilgileri WWW
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #6 : 10, 2008, 05:02:30 pm »

Bu kadar karmasik olan birsey yok;

session kullanmak istedigin her sayfanin basina session_start() koyarsan mevcut oturumda yani kullanicinin tarayicisinda her sayfada tanitilan session gecerli olur. onemli olan her sayfanin basinda session_start olmasi, olmazsa session o sayfa icinde kullanilamaz.

Session belirlemek icin ozel birsey yamana gerek yok $_SESSION['isim'] = 'deger' seklinde session atayabilirsin ve ayni sekilde echo $_SESSION['isim'] seklinde istedigin sayfada kullanabilirsin. bunun icin cookie yada url uzerinde aktarma yapmana gerek yok. ama dedigim gibi en tepede session_start olmasi gerek.

session i bosaltmak icinde destroy yerine unset($_SESSION['isim']) seklinde kullanirsan bu session kulanilmaz hale gelir. Belirttigin diger seyler icinde sayfaya kontrol koyman gerek ornegin login sayfasini gostermek istemiyorsan session i kontrol ettir dolu ise gosterme bos ise goster. Eger buna ragmen dedigin erisim hatalarini aliyorsan kontrollerinde sorun vardir.

Databse e artar sekilde veri gormek icin otomatik attirmali primary key tanimlaman gerekir, veri girmek ise normal degisken ile nasil giriyorsan aynidir, degisken olarak gene $_SESSION['isim'] kullanacaksin.

En basit kullanimi boyledir yani
Logged

mahirix
PHP Stajyeri
**
Offline Offline

Mesaj Sayısı: 192



Üyelik Bilgileri
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #7 : 10, 2008, 06:29:41 pm »

Bi örnek yazacagım kendi sistemlerimin birinde kullandıgım oturum kontrolü basite indirip yazıyorum faydalı olur inş.

Kullanıcınuın giriş yaptıgı kodlar;

Kod:
<?php
$username $_POST["username"];
$password $_POST["password"];

if(!$username or !$password) die("Lütfen Tüm Alanları Doldurunuz");

$result = @mysql_query("select id, username, password from admin where username='$username'");
if(@mysql_num_rows($result) < 1) die("Böyle Bir Kullanıcı Yoktur");
list($userid$user$userpass)=@mysql_fetch_row($result);
$password codepass($password);
if($username == $user){
if($password == $userpass){
global $sites_cookie;
$data base64_encode("$userid;$user;$userpass");
$_SESSION[$sites_cookie] = $data;
$url $_SERVER['HTTP_REFERER'];
echo '<p align=center><br /><b>'.$username.'</b> Başarıyla Giriş Yaptınız.<br /><br />
<a href="'
.$url.'">Sayfa Yönlendirilmiyorsa Tıklayınız</a>
</p>'
;
gotourl("3"$url);
}
else {
die("Şifreniz Yanlıştır");
}
} else {
die("Böyle Bir Kullanıcı Yoktur");
}
?>


Kullanıcı girişi onaylanınca kullanıcı id, adı be şifresi site cokie adında sessiona base64 şifrelenip koyulur burda işlem bu..

kullanıcının kontrolünüde su fonksiyonla saglıorum;

Kod:
<?php
function user(){
global $sites_cookie;
$data $_SESSION[$sites_cookie];
if(!$data) return false;
$data base64_decode("$data");
list($userid$username$userpass) = explode(";"$data);
$result = @mysql_query("select id, username, password from "._MX."admin where id='$userid'");
if(@mysql_num_rows($result) > 0){
list($sqlid$sqlname$sqlpass)=@mysql_fetch_row($result);
if($username == $sqlname and $userpass == $sqlpass){
return true;
}
else {
return false;
}
} else {
return false;
}
}
?>


Sonrası ise çok basit ;

Kod:
if(user()){
// Kullanıcı kodları
}
else {
// ziyaretçi kodları
}

fonksiyonu istediğin sayfaya çagırıp istediğin gibi kullanabilirsin.. Haa unutmadan sayfaların hepsinin başında session_start(); war Smiley
Logged

SniperScope
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 5


Üyelik Bilgileri
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #8 : 12, 2008, 12:29:37 pm »

Arkadaslar hepinize yardimlarinizdan dolayi cok tesekkur ederim. Sonunda hem session isleyisini anlamaya hemde hali hazirdaki sorunumu cozmeye basladim.

Saygilarimla
Logged
Portsentry
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 6


Üyelik Bilgileri
Ynt: lanet oturum nedir ve nasil kontrol edilir?
« Yanıtla #9 : 14, 2008, 08:42:24 am »

sıra takibi için ufak bi fonksiyon la bu işi halledebilirsin.

Kolay Gelsin


Kod:
mysql_connet(***,***,***)
mysql_select_db(DATABASE)

$ilkdeger=1;

$sira_no=islem_no($deger);

echo ("$sira_no");

function Islem_no($Islem_No_Kontrol)
{


$Islem_No_Kontrol       =@mysql_query("Select * from TABLO_ADI order by SUTUN_ADI desc");
$Islem_No_array         =mysql_fetch_array($Islem_No_Kontrol);
$Islem_No                       =++$Islem_No_array[0];
}

Logged
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.