Session kullanıcı bilgilerini sayfaya yazdırmak.

Bu konuyu okuyanlar

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
Ne kadar araştırdıysam şu ana kadar, tam olarak ihtiyaç hissetiğim kodları bulamadım.

veritabanındaki kullanıcılar giriş yaptıktan sonra kullanıcı adını yazdırabiliyorum. Ama ben veritabanındaki $adsoyad $user_id gidi diğer bilgileri de ekrana yazdırabilmek istiyorum. Yardımcı olursanız sevinirim. Teşekkürler.
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
php de nasıl olur bilmiyorum ama session kullancıı bilgileri diye başlık yazmışsın soruna ama istediğin veritabanındaki bilgileri yazdırmak.session kullanıcı giriş yapar , kontrol edersin ve session oluşturursun.her kullanıcı için ad, soyad ve daha kaç tane session oluşturmak istersen yapabilirsin ama tavsiye edilmez.çünkü session bilgileri sunucuda tutulur ve kasar.sadece kişinin id sini veya adını al.id ile veritabanında başka işlemlerde kullanabilirsin.id ile yaptığında başka sayfaya geçtiğinde idsini okur , veritabanına gider bu id ye ait kullanıcının bilgilerini çekersin.en fazla 2 session oluştur tavsiyem.
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
Bu cevaptan şunu anlıyorum. Gerekli her bilgi için bir oturum açmak gerek? bir tam isim ve user_id lazım. Lokalde kullanılacak bir script. Sunucu zorlama derdi olmaz. Aynı anda kullanacak kişi sayısı bir elin parmaklarını geçmez. Nasıl yapılacağını net, kod örnekleri ile öğrenebilirsem iyi olacak. Teşekkür ederim.
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
her oluşturduğun session sunucuda tutulur.gereksiz yere fazla session oluşturursan 3-5 adet ve kullanıcı sayısı 1000 kişi ise 3000-5000 session kadar sunucu da bellek kaplanmış olur.performansı azaltır.çözüm olarak önbellekleme yapabilirsin(caching).ama kullanıcı ilk giriş yaptığında çerez oluşturabilirsin.yani kişinin tarayıcısında tutarsın bu bilgileri.her bilgi için session oluşturmamalısın.kullanıcı giriş yaptığında session oluşturulur(id veya adı ile) id ile oluşturduğunu varsay.diğer saklamak istediğin bilgiler neler (mesela ad ,soyad ,yaş) ise bunları çerez olarak kişinin tarayıcısında tutabilirsin veya bunları sergilemek istediğin yerde veritabanına gidersin ( session["id"] değeri ile) bu id li kişiyi bulur ad,soyad , yaş bilgi diğer bilgilerini okur ve listelersin.
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
script localde çalışacak, kullanıcı sayısı da 10-15 i geçmez. Kullanma istediğim kullanıcı bilgileri adsoyad ve user_id. user_id kullanmak istemem sebebim kişini girdiği verileri bu user_id ile veri tabanına işlemesi ve bu sayede herkesin kendi verilerini görüntülemesi.
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
dediğim gibi çerezleri de kullanabilirsin.ama 10-15 kişi ise sanırım istediğin kadar session oluşturabilirsin.performans açısından bir sorun olmayacak sanırım.kullanıcı işlem yapacaksa eşsiz bir session üzerinden yaptırabilirsin bu da id değeri olabilir
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
Evet, ama birden fazla session gerekiyorsa nasıl yapacağımı bulamadım açıkçası. En zorlandığım 2 konudan biri bu oldu.
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
c# tarafında birden fazla session oluşturmak için
session["id"]= value;
session["ad"]=value;
session["soyad"]=value

şeklinde
veya
session.add("ad","value");
session.add("id","value");

şeklinde oluşturulur.

okumak için ise
string ad=session["ad"].tostring(); şeklinde okunur.php de de benzerdir.
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
Çok teşekkür ederim. İl yazdıkların biraz uyuyor ama bakalım php bilen bir hayırsevere denk geliriz inşallah.
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
google var kardeş öyle cevap verilmesini beklersen yıllanmış şarap olursun
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
Ne google kaldı aramadığım ne de youtube. Hem Türkçe, hem İngilizce. :(
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
sayfanın başına sessionlara hazırlamak için php de
session.start(); kullanılıyor

çoklu session oluşturma
$user ve $pass değişkenler oluyor sanırım.string ifade de atayabilirsin.okuyacağın ad , soyad gibi değerler
$_SESSION["login"] = "true";
$_SESSION["user"] = $user;
$_SESSION["pass"] = $pass;
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
loginkontrol sayfam aşağıdaki gibi, oturumu başarı ile başlatıyorum ve aşağıdaki bilgilerle yönlndiğim index te kullanıcı adını <?php echo strtoupper($_SESSION['uye']); ?> kodları ile bastırıyorum. Aşağıdaki $_SESSION['uye'] = $uyebilgi['kadi']; satırının altına $_SESSION['adsoyad'] = $uyebilgi['adsoyad']; ekleyip <?php echo strtoupper($_SESSION['adsoyad']); ?> kodu ile bastırmayı denedim ama işe yaramadı.




<?php
session_start(); //oturum başlatılıyor

mysql_connect("localhost","root","root") or die("mysqle bağlanılamıyor"); //root adlı kullanıcı yok ise mysqle bağlanamıyorsunuz

mysql_select_db("rb") or die("veritabanı seçilemiyor"); //veri tabanınızda böle bir veritabanı oluşturulmadığından veritabanı seçilemiyor

$kadi = strip_tags(mysql_real_escape_string($_POST['kadi'])); //üye adını kötü huylu kişilerden korumak için alınmış bir önlemdir(-->,",' bu tür saldırıları engellemek için)

$sifre = strip_tags(mysql_real_escape_string($_POST['sifre']));// şifreyi kötü huylu kişilerden korumak için alınmış bir önlemdir(<,>,",' bu tür saldırıları engellemek için)

if($sifre == "" || $kadi == "") {
echo '<meta http-equiv="refresh" content="0;URL=login.php">'; // eğer üye adı ve şifre boş işe boş alanları doldurunuz
} else {

$sql = mysql_query("SELECT kadi from kullanici where kadi='$kadi' and sifre='$sifre' and durum=1"); //girilen üye adı ve şifre ile veritabanındaki ad ile şifre eşleştiriliyor

$uyevarmi = mysql_num_rows($sql); // böyle bir üye varmı sorgusu yapılıyor

if($uyevarmi == 0) { //eğer eşleşmiyorsa böyle bir üye yok ise

echo '<meta http-equiv="refresh" content="0;URL=login.php" target="root">'; //üyelik bilgileri bulunamadı tekrar deneyin

} else { //eşleşiyorsa

$uyebilgi = mysql_fetch_assoc($sql); // veri tabanındaki bilgiler çözülür

$_SESSION['uye'] = $uyebilgi['kadi']; //oturum başlatılır

echo '<meta http-equiv="refresh" content="0;URL=index.php" target="root">'; // index.php sayfasına yönlendiriliyorsunuz

}
}
?>
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
dediğim şekilde veritabanına bağlanmadan 3 -4 adet session oluştur ve buton click olayında falan bu sessionları ekrana basmaya çalış.eğer yazılıyorsa sorun $uyebilgi satırında olmalı.$uyebilgi=mysql_fetch_assoc($sql); satırı tam olarak ne yapar bilmiyorum ama diziden okumaya ve anahtar-value okumaya benziyor.bu satırı yaparak $uyebilgi içinde kadi ve adsoyad elemanlarının yüklü olduğundan emin misin.$uyebilgi nin bütün elemanlarını listele istersen.kadi ve adsoyad var mı yok mu anlarsın
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
$uyebilgi=mysql_fetch_assoc($sql); poşet edilen kulllanıc adı ve şifrenin veritabanında olup olmadığına buna eşleşen satırları buluyor. dah asonra da if ile bunun sıfıra eşit olmadığını görünce oturumu açıyor. Bu aşamadan sonra oturumu açıp verileri alabiliyor olmamız lazım ama aklımdakileri denedim. Olmuyor.
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
sorun sql cümlende.çağırırken sadece kadi hücresindeki değeri çağırmışsın.
SELECT kadi from kullanici where kadi='$kadi' and sifre='$sifre' and durum=1
yerine
select kadi,adsoyad from kullanici where kadi='$kadi' and sifre='$sifre' and durum=1
şeklinde çağırmalısın eğer adsoyad değişkenini tek hücrede tutuyorsan.
eğer ayrı hücrelerde tutuyorsan
select kadi,ad+soyad as adsoyad from kullanici where kadi='$kadi' and sifre='$sifre' and durum=1
şeklinde çağırırsın.
adsoyad tek hücrede tutmanı önermem.adına veya soyadına ihtiyacın olursa bölmen gerekir.ayrı hücrelerde daha işe yarar

---- Mesajlar birleştirildi ----

 
Son düzenleme:

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
bir önceki mesajımı yazarken fark ettim ve yerien * koydum. ama fark etmedi :)
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
mysql_query() sorgusu eşleşen tüm kayıtları veriyormuş.eğer 1 den fazla kayıt dönüyorsa ve sessiona atıyorsan sanırım hata alabilirsin.kayıdın tek olup olmadığına bakarmısın
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
post edilen kullanıcı adına ve şifreyle eşleşen birden fazla kayıt olamaz. aynı isimle iki kullanıcı kaydı yapılamadığı için bu değeri 1 den farklı olamaz
ya 1 ya 0. Nitekim manuel olarak ta biliyorum zaten 1.
 

chnkyn

Öğrenci
Katılım
11 Ocak 2018
Mesajlar
85
Reaksiyon puanı
14
Puanları
8
Yaş
32
ben sql de bazen çalışırken bir satırı kopyalayıp yapıştırıyorum.haliyle aynı satırdan alt alta olabiliyor.sen de şuan çalışma safhasındasın belki değişiklik yapıp denerken böyle bırakmış olabilirsin diye sordum.ayrıca visual studio da breakpoint yani adım adım ilerleme var.hatanın nereden kaynaklandığını çok kolay öğrenebiliriz.php de hata bulmak zor sanırım.bir kaç kişinin makalesinde breakpoint sonrası php geri dönmeyi düşünmediklerini de okumuştum.php de hata bulma seçeneklerini de araştırabilirsin.
ayrıca 2.satırı yazınca ortaya çıkan hatayı yazmamışsın.
 

pcmemp

Öğrenci
Katılım
1 Kasım 2011
Mesajlar
16
Reaksiyon puanı
0
Puanları
1
denemek için açılmış 3 kullanıcı var orda sorun yok değer 1. Php de hata bulmak zor değildir bende bilgi az. Gördüklerimi uyarlıyarak devam ediyordum yola. Göremediğimiz bir duvara tosladık. öyle birkaç duvar var. Ama genel olarak % 80 halettim. Takıldığım yerler az. AMa takılınca da böyle kilitleniyor.
 
Üst