v2.5.2
Giriş yap

Javascript'de Session değiştirme

hakan2004
312 defa görüntülendi

Arkadaşlar Selamun aleyküm. ajax ile profil güncelleme sayfası yapıyorum. bilgiler başarıyla güncelleniyor ancak js'de sessionları değiştiremiyorum.

$guncelle=$VT->SorguCalistir("UPDATE kullanicilar ","SET adsoyad=?, kullanici=?, mail=? WHERE ID=?",array($adsoyad,$kullanici,$mail,$ID),1);

if ($guncelle!=false) 
{
	$jsoncikti = array( "islem" => true, "sonuc" => "Bilgiler Başarıyla Güncellendi", "adsoyad" => $adsoyad, "kullanici" => $kullanici, "mail" => $mail );			  
}
else
{
	$jsoncikti = array( "islem" => false, "sonuc" => "Bir sorun oluştu !!!" );
}

Buradan gelen adsoyad mail ve kullanıcı bilgilerini sessiona atamam gerekiyor

$("#profilgonder").click(function() {
    $.ajax({
        type:"post",
        url:"<?=$siteURL?>data/islem.php",
        dataType: 'JSON',
        data:$("#profilbilgi").serialize(),
        success:function(data) 
        {
        
        if(data.islem)
        	{		 
        		$("#apps").append("<div class='bildirim'><img class='uyari' src='<?=$siteURL?>assets/media/img/tamam.svg'>"+data.sonuc+"</div>");  
        sessionStorage.getItem('key');
        
        // BURAYA yeni session değerlerini atamam gerekiyor
        // $_SESSION['mail']=data.mail gibi
        
        
        	}
        	else
        	{
        		$("#apps").append("<div class='hata'><img class='uyari' src='<?=$siteURL?>assets/media/img/hata.svg'>"+data.sonuc+"</div>");
        	
        	}
        }
    
    }).complate(function() {
        $("button").show();
        $("#loadd").hide();
    })
});

bunu nasıl yapabilirim acaba ?

Cevap yaz
Cevaplar (4)
h4ckdr0
714 gün önce

Ve Aleyküm Selam :)

JavaScript ile PHP'nin $_SESSION değişkenine erişemezsiniz. Bunun yerine, JavaScript ile sessionStorage objesi kullanarak, tarayıcının sessionStorage özelliğini kullanabilirsiniz. Örnek olarak, aşağıdaki gibi kullanabilirsiniz:

sessionStorage.setItem('key', data.mail);

Bu kod, tarayıcının sessionStorage özelliğine key anahtarını ve değer olarak data.mail değişkenini atayacaktır. Daha sonra, istediğiniz yerde sessionStorage.getItem('key') şeklinde bu değeri alabilirsiniz.

Bu yöntem ile PHP ile aynı session değerlerine erişebilir, ancak PHP ile değiştirilemez. Eğer PHP ile değiştirmek istiyorsanız, AJAX ile PHP'ye tekrar istek göndermeniz gerekir.

Örneğin:

$.ajax({
  type: "POST",
  url: "<?=$siteURL?>data/islem.php",
  data: {
    'key': data.mail
  },
  success: function(response) {
    // İşlem başarılı
  }
});

Bu AJAX isteği ile data/islem.php dosyasına key değişkenini gönderir, ve PHP tarafında bu değişkeni $_POST['key'] şeklinde alıp, $_SESSION değişkenine atayabilirsiniz.

$_SESSION['key'] = $_POST['key'];

Umarım bu bilgiler yardımcı olmuştur :)

tayfunerbilen
713 gün önce

senin hatan client-side tarafta server-side bir işlem yapmaya çalışmak. yapacağın şey, bilgileri güncellediğin php tarafında session'a yeni değerleri atamak.

$guncelle=$VT->SorguCalistir("UPDATE kullanicilar ","SET adsoyad=?, kullanici=?, mail=? WHERE ID=?",array($adsoyad,$kullanici,$mail,$ID),1);

if ($guncelle!=false) 
{
	$jsoncikti = array( "islem" => true, "sonuc" => "Bilgiler Başarıyla Güncellendi", "adsoyad" => $adsoyad, "kullanici" => $kullanici, "mail" => $mail );
	$_SESSION['mail'] = $mail; // bu sekilde
}
else
{
	$jsoncikti = array( "islem" => false, "sonuc" => "Bir sorun oluştu !!!" );
}
phpstring
715 gün önce

Bu tür özel verileri sessionStorage,localStorage ya da şifrelemeden cookies içinde kullanmak büyük güvenlik açıkları verir öncelikle
bilmeniz gereken şeylerden biri bu.
Anlamadığım husus kullanıcı verilerini güncellediğinde neden bu verileri çıktı olarak verip istemci tarafına göndermek? Bunun yerine
verileri kaydettikten sonra sayfayı yenilemen daha mantıklı değil mi?
Diyeceğim o ki verileri güncelle fakat ekrana çıktı vermek istiyorsan sadece "Hata Oluştu!","Başarı ile güncellendi." gibi mesajları
ekrana yansıt.Evet kullanıcılar hızı ve akıcılığı sever fakat güvenlik her zaman daha önemli bir konu..unutmayalım.
Kesin ve kesin oturum verisi olarak kaydetmem lazım diyorsan da PHP <b>$_SESSION</b> veya <b>$_COOKIE</b> global değişkenlerine bak derim.

Saygılarımla..

abdullahx
715 gün önce

Sizin sessionStorage den anladığınız olay ne, bunu bir açıklayabilir misiz?