v2.5.2
Giriş yap

SESSION VERİ GÜNCELLEME

Anonim
470 defa görüntülendi

Merhaba session ile sepet oluşturdum herhangi bir sql kaydı yok

session da olan adeti nası güncellerim

if($_POST['islem'] == 'sepet-ekle'){
        if(is_numeric($_POST['urun_id']) AND is_numeric($_POST['adet']) AND is_numeric($_POST['secenek_id'])){
            if($_POST['adet'] < 1){
              $_POST['adet'] = 1;
            }
            $urunquery = $db->prepare("SELECT * FROM urun where id=:id LIMIT 1");
            $urun = $urunquery->execute(array(":id"=>$_POST['urun_id']));
            $urun = $urunquery->fetch(PDO::FETCH_ASSOC);
            if($urun){
              if($_POST['secenek_id'] > 0){
                $query = $db->prepare("SELECT * FROM urun_secenek_alt where id=:id LIMIT 1");
                $alt_secenek = $query->execute(array(":id"=>$_POST['secenek_id']));
                $alt_secenek = $query->fetch(PDO::FETCH_ASSOC);
                if($alt_secenek){
                  if($_POST['adet'] > $alt_secenek['stok']){
                    echo 0;
                  }else{
                    $uniqid = $_POST['urun_id'].'-'.$_POST['secenek_id'];
                    $_SESSION['sepet']['urun_id'][$uniqid]      = $_POST['urun_id'];
                    $_SESSION['sepet']['adet'][$uniqid]         = $_POST['adet'];
                    $_SESSION['sepet']['secenek_id'][$uniqid]   = $_POST['secenek_id'];
                    $_SESSION['sepet']['key'][$uniqid]          = $uniqid;
                    echo 2;
                  }
                }else{
                  echo 1;
                }
              }else{
                  if($_POST['adet'] > $urun['stok']){
                    echo 0;
                  }else{
                    $uniqid = $_POST['urun_id'];
                    $_SESSION['sepet']['urun_id'][$uniqid]      = $_POST['urun_id'];
                    $_SESSION['sepet']['adet'][$uniqid]         = $_POST['adet'];
                    $_SESSION['sepet']['secenek_id'][$uniqid]   = 0;
                    $_SESSION['sepet']['key'][$uniqid]          = $uniqid;
                    echo 2;
                  }
              }
            }else{
              echo 1;
            }
        }else{
          echo 1;
        }
Cevap yaz
Cevaplar (2)
hakankorkz
1181 gün önce

bence session yerine json tercih edebilirsin dostum daha sağlıklı vü güvenli olacaktır böyle session bilgilere müdahale edilebiliniyor...

saffetoge
1181 gün önce

Merhaba Kodunda bulunan aşağıdaki bölümde işaretlediğim yeri değiştirmen çözüm olacaktır.

if($_POST['adet'] > $urun['stok']){

                echo 0;
              }else{
                $uniqid = $_POST['urun_id'];
                $_SESSION['sepet']['urun_id'][$uniqid]      = $_POST['urun_id'];
                $_SESSION['sepet']['adet'][$uniqid]         = $_POST['adet'];
                $_SESSION['sepet']['secenek_id'][$uniqid]   = 0;
                $_SESSION['sepet']['key'][$uniqid]          = $uniqid;
                echo 2;
              }
              
              

$_SESSION['sepet']['adet'][$uniqid] = $_SESSION['sepet']['adet'][$uniqid]+$_POST['adet'];

burada session 'da tuttuğun veriyi sürekli post ettiğin veri ile güncelliyorsun dolayısı ile hep 1 olarak kalacaktır. Ancak posttan gelen veriyi üstüne eklemen gerekiyor.

burayı düzenlersen sonrasında birde eksiltme için koda ihityacın olacak.

Bir küçük dip not $_POST global değişkenlerini direk kullanmamanı tavsiye ederim.
bu şekilde bir fonksiyon tanımlarsan daha güzel olur.

php
/**

  • @param $name
  • @return string
    */
    function post($name)
    {
    if (isset($_POST[$name]))
    return htmlspecialchars(trim($_POST[$name]));
    }