lostyazilim
tr.link

oturum açma bilgisi değiştirilirken session kayboluyor

9 Mesajlar 1.519 Okunma
lstbozum
tr.link

junana junana WM Aracı Kullanıcı
  • Üyelik 14.12.2020
  • Yaş/Cinsiyet 42 / E
  • Meslek Turizm
  • Konum Kocaeli
  • Ad Soyad E** O**
  • Mesajlar 4
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
merhaba arkadaşlar. bu forumda yeniyim. bu da ilk mesajım. php'de de yeniyim. basit bir eticaret sitesi üzerinde uğraşıyorum. kullanıcı verilerini database'de tutuyorum. ilk kullanıcı kaydetme ve düzenleyip database tarafına yazdırmada sıkıntım yok. kullanıcı hesap düzenleme sayfasında SESSION ile yalnızca kullanıcı adını tutuyorum. bütün sayfalarda ob_start();session_start();mevcut. kullanıcı tablosunda sadece kullanıcı adını değiştirirken sorun yaşıyorum. kullanıcı adı (yani mail adresi) değişiyor. database tarafına kaydediliyor fakat tekrar hesap sayfasına dönerken güncel verileri getirmiyor ve session kayboluyor, tekrar oturum açmak zorunda kalıyorum. bu arada şöyle bir durum var. aynı kullanıcı maili ile mükerrer kayıt istemiyorum. sonuç olarak düzenleme yaparken de öyle olması gerekiyor. kodları da ona göre yazdım ama eksik bir şeyler var. işin içinden çıkamadım.acaba işlem yaptırdığım sayfada aşağıdaki kodlara mı bir ekleme yapmam gerekiyor yoksa hesabim.php sayfasında ek bir kod yazmam mı gerekiyor yardımcı olursanız sevinirim.



if (isset($_POST['kullaniciguncelle'])) {

$kullanici_id=$_POST['kullanici_id']; echo
$kullanici_ad=htmlspecialchars($_POST['kullanici_ad']); echo "
";
echo $kullanici_soyad=htmlspecialchars($_POST['kullanici_soyad']); echo "
";

echo $kullanici_mail=htmlspecialchars($_POST['kullanici_mail']); echo "
";









$kullanicisor=$db->prepare("SELECT * FROM kullanici where kullanici_mail=:mail");
$kullanicisor->execute(array(
'mail' => $kullanici_mail

));


$say=$kullanicisor->rowCount();



if ($say==0) {




$kullanicikaydet=$db->prepare("UPDATE kullanici SET
kullanici_ad=:kullanici_ad,
kullanici_soyad=:kullanici_soyad,
kullanici_mail=:kullanici_mail,
kullanici_gsm=:kullanici_gsm,
kullanici_dogumtarihi=:kullanici_dogumtarihi,
kullanici_unvan=:kullanici_unvan,
kullanici_il=:kullanici_il,
kullanici_ilce=:kullanici_ilce,
kullanici_postakodu=:kullanici_postakodu,
kullanici_adres=:kullanici_adres,
kullanici_ulke=:kullanici_ulke
WHERE kullanici_id={$_POST['kullanici_id']}
");
$update=$kullanicikaydet->execute(array(
'kullanici_ad' => $kullanici_ad,
'kullanici_soyad' => $kullanici_soyad,
'kullanici_mail' => $kullanici_mail,
'kullanici_gsm' => $_POST['kullanici_gsm'],
'kullanici_dogumtarihi' =$_POST['kullanici_dogumtarihi'],
'kullanici_unvan' => $_POST['kullanici_unvan'],
'kullanici_il' => $_POST['kullanici_il'],
'kullanici_ilce' => $_POST['kullanici_ilce'],
'kullanici_postakodu' => $_POST['kullanici_postakodu'],
'kullanici_adres' => $_POST['kullanici_adres'],
'kullanici_ulke' => $_POST['kullanici_ulke']
));

if ($update) {

$kullanicicek=$kullanicisor->fetch(PDO::FETCH_ASSOC);

$kullanicicek['kullanici_mail']=$_SESSION['userkullanici_mail'];

header("Location:../../hesabim.php?durum=loginbasarili");

exit;

} else {


header("Location:../../hesabim.php?durum=basarisiz");
exit;
}

}


}
 

 

wmaraci
reklam

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
sessionu kullanıcı adına atayıp, değiştirince sessiondakiyle eşleşmemesi kadar normal birşey var mı?
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.

Mango Mango WM Aracı Kullanıcı
  • Üyelik 23.11.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Front-End Developer
  • Konum Bursa
  • Ad Soyad N** K**
  • Mesajlar 311
  • Beğeniler 8 / 81
  • Ticaret 0, (%0)
Session'ı id'ye atarsanız daha sağlıklı olur
 

 

junana junana WM Aracı Kullanıcı
  • Üyelik 14.12.2020
  • Yaş/Cinsiyet 42 / E
  • Meslek Turizm
  • Konum Kocaeli
  • Ad Soyad E** O**
  • Mesajlar 4
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)

AzveNet adlı üyeden alıntı

sessionu kullanıcı adına atayıp, değiştirince sessiondakiyle eşleşmemesi kadar normal birşey var mı?


ben de tam olarak bunu düzeltmeye çalışıyorum
 

 

wmaraci
wmaraci

junana junana WM Aracı Kullanıcı
  • Üyelik 14.12.2020
  • Yaş/Cinsiyet 42 / E
  • Meslek Turizm
  • Konum Kocaeli
  • Ad Soyad E** O**
  • Mesajlar 4
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)

Mango adlı üyeden alıntı

Session'ı id'ye atarsanız daha sağlıklı olur


bunu denememiştim ama deneyeceğim.
 

 

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)

junana adlı üyeden alıntı

ben de tam olarak bunu düzeltmeye çalışıyorum


üstadım atadığınız değeri değiştirdiğinizde normaldir derken başka bir değerde tutun demek istemiştim :)
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.

junana junana WM Aracı Kullanıcı
  • Üyelik 14.12.2020
  • Yaş/Cinsiyet 42 / E
  • Meslek Turizm
  • Konum Kocaeli
  • Ad Soyad E** O**
  • Mesajlar 4
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
maalesef beceremiyorum. session_id() ye atamayı denedim. ama yine de oturum kopuyor.
 

 

Yusufcoruh Yusufcoruh WM Aracı Kullanıcı
  • Üyelik 30.08.2016
  • Yaş/Cinsiyet 48 / E
  • Meslek Muhasebe
  • Konum İstanbul Anadolu
  • Ad Soyad Y** C**
  • Mesajlar 136
  • Beğeniler 17 / 16
  • Ticaret 0, (%0)
Kullanıcı kaydederken ve session ataması yapılırken şöyledir

$_SESSION['userkullanici_mail']= $kullanici_mail gibi bişey iken yani sessiona kullanıcı mail ataması yapılmıştır ve sen güncellerken tam tersini yaparak

$kullanicicek['kullanici_mail']=$_SESSION['userkullanici_mail']; $kullanicicek['kullanici_mail'] adlı değişkene session ataması yapmaya çalışıyorsun .

ve muhtemelen hesabim.php sayfanda if(!empty($_SESSION['userkullanici_mail'])) gibi bir sorgulama sana yanıt vermiyecek..
 

 

Lions Lions WM Aracı Kullanıcı
  • Üyelik 05.05.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Web-Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** K**
  • Mesajlar 1025
  • Beğeniler 366 / 534
  • Ticaret 5, (%100)
session_id olarak değil, $_SESSION['id'] = $kullanici_id şeklinde (burada kullanıcı id'sini çektirin veritabanından) atama yapın. Böylece kullanıcı session ı idsi üzerinden oluşur. Ardından tüm sayfalarda bu id ile veri çekme, düzenleme işlemleri yapabilirsiniz.
 

 

wmaraci
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