Çözüldü PHP session ekranda görünmüyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Arsen Lüpen

Hectopat
Katılım
28 Şubat 2021
Mesajlar
81
Daha fazla  
Cinsiyet
Erkek
Başka sayfa da echo ile yazdırmaya çalışıyorum sessıona attığım ismi. If isset şeklinde yapıyorum hata almıyorum ama ekranda gözükmüyor. If yazmadan sadece echo deyip yazdırmaya çalışıyorum. Bu sefer de $_sessıon['user_name']deki user_name tanımsız diyor. Yardımcı olabilirseniz sevinirim.
 

Dosya Ekleri

  • Ekran Görüntüsü (18).png
    Ekran Görüntüsü (18).png
    159,5 KB · Görüntüleme: 49
  • Ekran Görüntüsü (192).png
    Ekran Görüntüsü (192).png
    95,9 KB · Görüntüleme: 26
Çözüm
Şimdi admin sayfası özel bir sayfa olduğu için herkesin girmesini engellemelisin.
admin_sayfasi.php içine $_SESSION['user_name'] var mı yok mu kontrolü eklemezsen herkes formu doldurmadan giriş yapabilir. Sen de içeride echo ile $_SESSION['user_name'] yazdırdığın için hem site stabil çalışmayacak yani giriş yapan olmadığı için yazdırdığın user_name boş gelecek hem de giriş yapmadan birisi oradaki verileri görebilecek.

$_SESSION mantığını bahsettiğin şekilde sonraki girişleride kullanıyorsan şöyle yapabilirsin:

$_SESSION başlattığın sayfa:
PHP:
$_SESSION['admin_oturum'] = true; //x bir session oluşturup kontrolleri bununla sağlayabiliriz.
$_SESSION['user_name'] = $user_name; //bu da normalde kullandığın user_name verisi.

$_SESSION kullandığın sayfa:
PHP:
<?php
include 'baglanti.php';
if($_SESSION['admin_oturum'] != true) {
    header('Location:giris-sayfasi.php'); //oturum açılmamışsa giriş sayfasına yönlendirdik.
}
?>
<p>
    Hoşgeldiniz Sn. <?=$_SESSION['user_name']?>
</p>

Çıkış sayfan:
PHP:
session_start();
unset($_SESSION['admin_oturum']); //admin_oturumunu silince giriş yapılmamış olacak bu şekilde izinsiz girişi engelleyeceksin
header('Location:giris-sayfasi.php'); //çıkış yaptırınca otomatik olarak giriş sayfasına yönlendirdin
Evet orayı yanlış yazmışım 😅. Düzelttim ama sorun yine devam ediyor. Fotoğrafta paylaştığım gibi yazınca.

"warning: Undefined array key "user_name" in C:\xampp\htdocs\Pompa seçim Programı\admin_sayfasi.php on line 30"

bu hatayı alıyorum.
 

Dosya Ekleri

  • Ekran Görüntüsü (21).png
    Ekran Görüntüsü (21).png
    85,1 KB · Görüntüleme: 25
$_SESSİON olan kodu $_SESSION olarak düzelttiysen;

admin sayfasında post kontrolü yapmayacaksın. Şöyle düzeltebilirsin.
Bağlantı dosyanı include ettiğin yerin hemen altına bunu ekleyeceksin:
PHP:
if(empty($_SESSION['user_name'])) {
header('Location:giris-sayfasi.php');
}
Bu şekilde eğer giriş yapılmamışsa giris-sayfasi.php sayfasına gidecek, giriş yapılmışsa sayfada kalacak ve işlemlere devam edecek.

user_name yazdırmak istediğin yere de bunu yazacaksın:
PHP:
<?php echo $_SESSION['user_name'];?>
ya da kısa hali (küçüktür ve soru işaretinden sonra gelen eşittir, echo görevi yapar):
PHP:
<?=$_SESSION['user_name']?>
 
$_SESSİON olan kodu $_SESSION olarak düzelttiysen;

Admin sayfasında post kontrolü yapmayacaksın. Şöyle düzeltebilirsin.
Bağlantı dosyanı include ettiğin yerin hemen altına bunu ekleyeceksin:
PHP:
if(empty($_SESSION['user_name'])) {
header('Location:giris-sayfasi.php');
}
Bu şekilde eğer giriş yapılmamışsa giris-sayfasi.php sayfasına gidecek, giriş yapılmışsa sayfada kalacak ve işlemlere devam edecek.

User_name yazdırmak istediğin yere de bunu yazacaksın:
PHP:
<?php echo $_SESSION['user_name'];?>
Ya da kısa hali (küçüktür ve soru işaretinden sonra gelen eşittir, echo görevi yapar):
PHP:
<?=$_SESSION['user_name']?>

Yardımınız için teşekkür ederim. Ekrana geldi girilen kullanıcı adı. Ama merak ettiğim şey ilk baştaki if sorgusu kullanıcı adı var mı yok mu onu kontrol etmek için değil mi? Ben de zaten session çalışıyordu. Yani ben admin sayfasını kapatıp açtığımda, tekrar giriş yaparken en son girdiğim kullanıcı adı kalıyordu kullanıcı adı inputunda. Sadece şifre giriyordum. Bu demek oluyor ki session çalışıyor. En son giren kişinin bilgileri kaydedilmiş. İşte ben sadece bu ismi admin sayfasının bir köşesine yazdırmak istiyordum. Ama bana kullanıcı adı tanımsız diyordu. Ezberle geç değil de öğrenmek istediğim için soruyorum. Anlatırsanız sevinirim.
 
Şimdi admin sayfası özel bir sayfa olduğu için herkesin girmesini engellemelisin.
admin_sayfasi.php içine $_SESSION['user_name'] var mı yok mu kontrolü eklemezsen herkes formu doldurmadan giriş yapabilir. Sen de içeride echo ile $_SESSION['user_name'] yazdırdığın için hem site stabil çalışmayacak yani giriş yapan olmadığı için yazdırdığın user_name boş gelecek hem de giriş yapmadan birisi oradaki verileri görebilecek.

$_SESSION mantığını bahsettiğin şekilde sonraki girişleride kullanıyorsan şöyle yapabilirsin:

$_SESSION başlattığın sayfa:
PHP:
$_SESSION['admin_oturum'] = true; //x bir session oluşturup kontrolleri bununla sağlayabiliriz.
$_SESSION['user_name'] = $user_name; //bu da normalde kullandığın user_name verisi.

$_SESSION kullandığın sayfa:
PHP:
<?php
include 'baglanti.php';
if($_SESSION['admin_oturum'] != true) {
    header('Location:giris-sayfasi.php'); //oturum açılmamışsa giriş sayfasına yönlendirdik.
}
?>
<p>
    Hoşgeldiniz Sn. <?=$_SESSION['user_name']?>
</p>

Çıkış sayfan:
PHP:
session_start();
unset($_SESSION['admin_oturum']); //admin_oturumunu silince giriş yapılmamış olacak bu şekilde izinsiz girişi engelleyeceksin
header('Location:giris-sayfasi.php'); //çıkış yaptırınca otomatik olarak giriş sayfasına yönlendirdin
 
Çözüm

Geri
Yukarı