lostyazilim
tr.link

session bilgisini alamıyorum

9 Mesajlar 1.046 Okunma
lstbozum
tr.link

tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
merhaba, amacım; sorgulama yaptığım anda "kullaniciId" si $_SESSİON['kullaniciId'] a eşit olan kişiler varsa eğer işte o kişi bilgisinin yanında , yani $a dizi değişkenine array_push yöntemiyle 1 sayısını ekleyip göndermek. ama bir türlü diğer sayfada tanımladığım $_SESSİON['kullaniciId'] değerini bu sayfada alamıyorum, neden, nerede hata yapıyorum? yani elimde bir dizi var; o dizinin sıfırıncı indekse karşı gelen değer "kullaniciId " dir, bunu alıyorum ve diyorum ki; bu kullaniciId eğer aktif ise yani oturum açmış ise, bu diziye ekstradan 1 sayısını ekleyip ilgili yere göndermek amacım, ama dediğim gibi o an açık olan $_SESSİON['kullaniciId'] bilgisini çekemiyorum , yardımcı olab,ilir misiniz, teşekkürler.
session_start();

include ("baglan.php");

if($_POST){

$birim =$_POST['birimGonder'];

$sql="select kullaniciId, adiSoyadi, unvan from kullanicilar WHERE birimId=(select birimId from birimler where birimAdi='$birim' )";
//$_SESSİON['oturum']=true;
$oturum=$_SESSİON['kullaniciId'];

$json=array();
$sorguKisiAl= mysqli_query($baglan,$sql);


while($a=mysqli_fetch_array($sorguKisiAl)) {
if ($a[0]==$_SESSİON['kullaniciId']) {
array_push($a,1);
}

$json[]=$a;
}
}

echo json_encode($json);

?>
 

 

wmaraci
reklam

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
tarkan3261 detaylı bakmadım ama gözüme ilk çarpan SESSİON yazmızşın. Büyük İ olmuş. Onu SESSION yapıp bi dene istersen.
 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)

tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
İlginiz için teşekkür ederim sayin ÖmerGünay , ben de farkındayım da ama şimdiye kadar bu sekilde bir sorun çıkarmadı. Ya aslinda benim tam olarak yapmak istediğim şey şu, veritabanından bir kişinin kaydını çekip onun o anda session , yani oturumunun açık olup olmadığını kontrol etmek, bunu nasıl yapabilecegimin algoritmasini biliyorum ama koda dökemedim, nasıl olabilir acaba?
 

 

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
tarkan3261 öyle bişey hiç yapmadım ben yapılıyor mu onda da emin olamadım. Ne için böyle bir işlem yapmak istiyorsunuz ?
 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)
wmaraci
wmaraci

tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
Amacım online kisileri tespit edip , kisiler listesinde onların string renk değerlerini yeşil yapmak. Aslinda bir yöntem var ve çoğu makalede de ondan bahsediyor ama o yöntemde kod fazlalığı ve trafik yoğunluğu oluşur, performansı etkiler. Bahsedilen yöntemde kullanıcıların olduğu tabloya "durum" adında bir sutun ekliyoruz, kisi giriş yapıp session atandigi zaman kişinin id si üzerinden o yeni oluşturulan alana update yoluyla örneğin 1 sayısını ekliyoruz, sonra o alandaki degeri if else kontrolü ile alıp kisi listesindeki if else sırtından geçirip 1 olanların string değerlerinin rengini örneğin yeşil yapıyoruz. Iste bu sekilde olursa session global degisken kullanmanın bir anlami kalmıyor ve yoğunluğundan başka bir şey degil, ama benim yapmak istediğim en kisa yol, gelin görün ki teknik olarak mümkün olan düşüncemi karşılayacak kodu bulamadim
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Sizin kafanızdaki durum öyle sandığınız gibi olmuyor, benim session ım açık, ben online olduğumu görebiliyorum ama başka kullanıcı bunu bilemez, o da sadece kendinin online olduğunu görür. Kimlerin online olduğunu öğrenebilmek için herkese açık bir depolama alanında saklanması lazım. Session sadece o oturuma özgü bir şey
 

 


tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
"Session sadece oturumu açan kişiye özgü bir sey" eyvallah Abdullah hocam, bu cumle benim için son nokta oldu, demekki diger yöntemi kullanmak zorundayım, cok teşekkür ederim cevaplar için, yalnız bi sekilde başka bi yolunu bulursam burada , arayanlar için çok alakalı bir başlık altında paylaşacağım inşallah, iyi çalışmalar tekrar teşekkür ler.
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Rica ederim, size veri tabanından başka bir yol önereyim, biraz dolambaçlı olabilir ama veri tabanını kullanmaz.
Bir tane online.json diye dosya oluşturun. Bu dosyanın içeriğini en başta key olarak veri tabanındaki bütün kullanıcılar, value olarak timestamp verin. Bunu veri tabanından çekerek dinamik şekilde yapabileceğiniz gibi ilk sefere özgü statik şekilde de yapabilirsiniz.
Bir php dosyasında şu şekil bir şey yapmanız lazım yani;

$users = [
'kullanıcı_id1' => time(),
'kullanıcı_id2' => time(),
..
..
];
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'online.json', json_encode($users, JSON_UNESCAPED_UNICODE));

Kullanıcıları döngü ile çekip ekleyin orası size kalmış.

Sayfanın başında bu json dosyasını alın, array e çevirin, o an oturum açmış kişinin id değerini şimdiki zaman damgasıyla güncelleyin, bu işlemi kullanıcının her tıkladığı sayfanın üstüne gelecek şekilde ayarlayın. Online kontrolü yaparken de o kişinin son aktivitesi şimdiki zamandan atıyorum 5 dk eskiyse offline yeni ise online olsun. Online.json dosyasını da yeni kullanıcı kayıt olma ihtimaline göre 15 dk bir cron ile kontrol edip veri tabanına eklenen yeni kullanıcı varsa siz de o dosyaya onu eklersiniz. Fikir bu, detayları şekillendirmek size kalmış. Ama ne denli mantıklı orası meçhul :)
 

 


tarkan3261 tarkan3261 WM Aracı Kullanıcı
  • Üyelik 25.03.2021
  • Yaş/Cinsiyet 45 / E
  • Meslek programcı
  • Konum Elazığ
  • Ad Soyad T** A**
  • Mesajlar 58
  • Beğeniler 3 / 7
  • Ticaret 0, (%0)
Cok teşekkür ederim sayin Abdullah hocam, usenmemissiniz epey bi yazıp yol gostermissiniz, de ben daha yeniyim, anlattığınız olaylara terimlere yabancıyım, ama gün gelir bunları da öğrenirim, en iyisi veritabani yöntemini kullanayım şimdilik. çok teşekkür ediyorum, isiniz rast gelsin, iyi çalışmalar.
Abdullahx

kişi bu mesajı beğendi.

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al