• 20-01-2023, 14:56:18
    #1
    Merhaba, PHP ile yazdığım bir projem var. Projede ihtiyacım olan şey şu ki, siteye giren her bir kişi için kendine özgü bir array'i olmasını ve o array'in bir sessionda durmasını istiyorum. Örneğin SESSION süresini 24 saat olarak ayarladığımda aynı kullanıcı gün içinde siteye her girişinde session array'deki verileri önüne çekecek ve 24 saatin sonunda session sıfırlanınca önüne artık bir veri gelmeyecek. Bu durum giren her kullanıcı için ayrı ayrı olacak.
    Fakat projemde kullanıcı girişi yok o yüzden her kullanıcınıın id si ile session oluşturamıyorum çünkü id leri yok. Anonim olarak giren her kişi için bir session array nasıl yapılabilir ?
    Teşekkürler.
  • 20-01-2023, 14:59:46
    #2
    <?php
    session_start();
    $_SESSION["veriler"] = array("veri1"=> $veri1,
    "veri2"=>$veri2
    )
    
    // Session varsa 
    if(isset($_SESSION["veriler"]){
    print_r($_SESSION["veriler"]);
    }
    ?>
  • 20-01-2023, 15:04:30
    #3
    Merhaba,
    https://fingerprint.com/
    https://github.com/fingerprintjs/fingerprintjs
    Her kullanıcıya uniq ve session silse de tekrar yakalayabileceğiniz bir id yi bu kütüphane yardımıyla oluşturabilirsiniz.
  • 20-01-2023, 15:21:31
    #4
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    https://fingerprint.com/
    https://github.com/fingerprintjs/fingerprintjs
    Her kullanıcıya uniq ve session silse de tekrar yakalayabileceğiniz bir id yi bu kütüphane yardımıyla oluşturabilirsiniz.
    Kullanıcının session silmesi benim için sorun değil tekrar yakalamam mecburi değil çünkü günlük kişilik testi gibi bir şey benim projem. İsteyen farklı tarayıcıdan girip tekrar çözebilir fakat günde 1 test olacak ve her gün değişecek.
    Eğer kullanıcı gün içinde birden fazla kez girerse daha önce vermiş olduğu cevaplar ve sonuç ekranda kalmaya devam edecek. Sayfa yenilediğinde gitmemesi gerekli sadece.
    sadece PHP session kullanılarak yapılır mı ?
    eğer yapılırsa güvenlik açısından sorun olur mu ?
    Teşekkürler cevabınız için.
  • 20-01-2023, 15:22:26
    #5
    ErayEfe adlı üyeden alıntı: mesajı görüntüle
    <?php
    session_start();
    $_SESSION["veriler"] = array("veri1"=> $veri1,
    "veri2"=>$veri2
    )
    
    // Session varsa 
    if(isset($_SESSION["veriler"]){
    print_r($_SESSION["veriler"]);
    }
    ?>
    Bu çözüm giren her kullanıcı için farklı farklı çalışıyor mu ?
    Birinin array'inde farklı veriler başka bir kullanıcının array'inde farklı veriler olacak.
  • 20-01-2023, 15:24:24
    #6
    ozcaglarbora adlı üyeden alıntı: mesajı görüntüle
    Bu çözüm giren her kullanıcı için farklı farklı çalışıyor mu ?
    Birinin array'inde farklı veriler başka bir kullanıcının array'inde farklı veriler olacak.
    $veri1 ve $veri2'yi arttırabilir, kullanıcılara özgün id ler yaratarak kullanabilirsiniz. Ben temel kullanım örneği verdim.
  • 20-01-2023, 15:29:19
    #7
    ozcaglarbora adlı üyeden alıntı: mesajı görüntüle
    Kullanıcının session silmesi benim için sorun değil tekrar yakalamam mecburi değil çünkü günlük kişilik testi gibi bir şey benim projem. İsteyen farklı tarayıcıdan girip tekrar çözebilir fakat günde 1 test olacak ve her gün değişecek.
    Eğer kullanıcı gün içinde birden fazla kez girerse daha önce vermiş olduğu cevaplar ve sonuç ekranda kalmaya devam edecek. Sayfa yenilediğinde gitmemesi gerekli sadece.
    sadece PHP session kullanılarak yapılır mı ?
    eğer yapılırsa güvenlik açısından sorun olur mu ?
    Teşekkürler cevabınız için.
    Ben teşekkür ederim.
    Ben node.js ile yazdığımdan php konusunda pek destek veremem ancak js ile o id yi cookie olarak yazabilirsiniz.
    Tamamen php olsun derseniz
    https://stackoverflow.com/questions/...numeric-string
    Buradaki gibi token oluşturup token yanına gün ay yıl yazabilirsiniz. 1 gün geçerli uniq bir id elde etmiş olursunuz. Umarım doğru anlamışımdır.
    • Adalente
    Adalente bunu beğendi.
    1 kişi bunu beğendi.
  • 20-01-2023, 15:35:38
    #8
    Çok teşekkürler
  • 20-01-2023, 18:04:48
    #9
    o zaman çerez kullanmalısın çünkü session tarayıcı kapandığında silinecektir ve tekrar girdiğinde o gün içinde bunu yakalayamazsın. Onun yerine çerez oluşturup Hem userı yakalar ve çözdüğü verileride gösterebilirsin. çerezi 1 günlük oluşturman işini görecektir.