PHP oturum sorunlar

5 Cevap php

Ben oturumu geçersiz aşağıdaki kodu kullanıyorum. Ben birçok sayfalarında logout.php ile bağlantılı var. Bu çıkış bağlantı tıklandığında ise logout.php sayfa denir. Aşağıdaki logout.php olarak kodudur.

unset($_SESSION['admin']);
session_destroy();
header('Location: index.php');

Once the session is invalidated I want to open the page index.php. But I am geting the following error:

Uyarı: session_destroy () [function.session-yok]: C başlatılmamış oturumu yok etmeyi deniyorlar: on line 3 \ xampp \ htdocs \ Seçimi \ logout.php

Uyarı: başlık bilgileri değiştirilemiyor - zaten tarafından gönderilen başlıklar (çıkışında C başladı: \ xampp \ htdocs \ Seçimi \ logout.php: 3) C: \ xampp \ htdocs \ Seçimi \ logout.php 4.satıra

Yanlış olan nedir?

5 Cevap

Ben daha önce oturumu yok session_start() fonksiyonu denilen olamaz düşünüyorum.

You `Bu pagecall oturuma ait olduğunu php hatırlatmak için sayfanın üstüne session_start () aramak gerekecektir. - En az PHP manual söyler.

Bu kılavuz sayfası vermek ipucu üzerinde notlar, bu session_unset () $ _SESSION değişkeni kullanarak değil eski ortamlarda kullanılacak sadece.

Önce oturum açmak zorunda:

header('Location: index.php');
session_start();
session_unset();
session_destroy();

Sorun başladı henüz bir oturumu yok edemezler. İşte o tarayıcıya yankılandı olan bir uyarı yükseltiyor. Sonraki sorun tarayıcıya çıkış var oldu sonra başlıkları gönderemezsiniz olduğunu, bu nedenle başka bir uyarı yükseltir.

Sen sadece bir oturum birinci olup olmadığını kontrol etmeniz gerekir:

if (session_name() != '') {
    session_destroy();
}

HER ZAMAN session_start kullanmanız gerekir (); Bir oturum fonksiyon / değişken kullanarak ÖNCE. Yani session_start () ile tüm PHP dosyaları başlar;. Ayrıca logout.php:

session_start();
session_destroy();
header('Location: index.php');

Ayrıca Ayarını iptal gerekmez.