• 11-05-2015, 02:43:11
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar, bir alışveriş sitesi uygulamasında sepete ürün ekliyorum. Sistem üyelikli.

    - Sepete eklenen ürünler cookie de tutuluyor. Yani veritabanında tutup tekrar silmiyorum.

    Fakat bu seferde baska bir üyeyle giriş yaptigimda, önceki üyenin sepetindekiler gorunuyor.

    Burada nasil bir şey yapmaliyim, veritabanına mı ekleteyim, yoksa baska yolu varmi cookiden ?
  • 11-05-2015, 02:45:53
    #2
    Cookie adına üye ID si ekleyerek yazabilirsin.

    urunler_123

    gibi mesela.
  • 11-05-2015, 02:49:03
    #3
    soulmy adlı üyeden alıntı: mesajı görüntüle
    Cookie adına üye ID si ekleyerek yazabilirsin.

    urunler_123

    gibi mesela.
    hocam uye ID yi SESSION larda tutuyorum.

    cookie yapisi su sekilde sepete eklerken.

    setcookie('sepet['.$id.']', $_COOKIE['sepet'][$id] + 1, time() + (86450));
    tam olarak nereye ekleyecegim :S
  • 11-05-2015, 02:56:11
    #4
    Buradaki $id değişkeni ürün ID'si mi kullanıcı ID'si mi?
  • 11-05-2015, 03:00:29
    #5
    soulmy adlı üyeden alıntı: mesajı görüntüle
    Buradaki $id değişkeni ürün ID'si mi kullanıcı ID'si mi?
    Ürünün hocam, cookieye kullanıcıyı nasıl dahil edicegimi bulamadim.

    Mesela ben üye1 olarak sepete 5 tane ürün ekliyorum, sonra cikis yapiyorum.

    üye2 ile girdigimde sepette üye1 in ekledigi urunler var,yani aynisi, normalde sepetin bos olmasi lazim :S
  • 11-05-2015, 03:04:48
    #6
    setcookie('sepet_'.$USERID.'['.$id.']', $_COOKIE['sepet_'.$USERID.''][$id] + 1, time() + (86450));

    veya

    setcookie('sepet['.$USERID.']['.$id.']', $_COOKIE['sepet'][$USERID][$id] + 1, time() + (86450));

    bu şekilde benzersiz cookie adı oluşturup yapabilirsin.

    Ama ben sizin yerinizde olsam cookie olarak veriyi tutmaktansa session tarafında bu verileri tutardım. Çok fazla kafa karışıklığı yaratmamış olur.
  • 11-05-2015, 03:23:47
    #7
    soulmy adlı üyeden alıntı: mesajı görüntüle
    setcookie('sepet_'.$USERID.'['.$id.']', $_COOKIE['sepet_'.$USERID.''][$id] + 1, time() + (86450));

    veya

    setcookie('sepet['.$USERID.']['.$id.']', $_COOKIE['sepet'][$USERID][$id] + 1, time() + (86450));

    bu şekilde benzersiz cookie adı oluşturup yapabilirsin.

    Ama ben sizin yerinizde olsam cookie olarak veriyi tutmaktansa session tarafında bu verileri tutardım. Çok fazla kafa karışıklığı yaratmamış olur.
    olmadi hocam :S yapı tam olarak şu şekilde

      if ( isset($_COOKIE['sepet'][$id])){
    
             setcookie('sepet['.$id.']', $_COOKIE['sepet'][$id] + 1, time() + (86450));
          } else {
             setcookie('sepet['.$id.']', 1, time() + (86450));
          }
          header('Location:'.$_SERVER['HTTP_REFERER']);
      }
  • 11-05-2015, 22:59:25
    #8
    Anlaşılan cookie ile olmayacak, veritabanına ekleyip silerek yapsak sanırım daha kolay ama o da tavsiye edilen bir durum degil :S
  • 11-05-2015, 23:03:14
    #9
    Sepette cookie değil session kullanın kullanıcı giriş yaptığında session yenileyin hem daha güvenli olur hemde bu tip sorunlarla karşılaşmazsınız

    Cookie kullanıcı bilgisayarında depolanır session sunucuda

    HTC Desire 310 cihazımdan Tapatalk kullanılarak gönderildi