-
Ü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;
}
}
}
-
Ü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.
-
Ü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
-
Ü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)
ü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.
-
Ü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.
-
Ü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..
-
Ü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.