PHP oturum başlığından sonra kayıp / yok

5 Cevap php

I / ile header() yönlendirilmeden önce bazı oturum değerleri ayarlayan bir komut dosyası var.

Ben bu uygulamaya sonra bile, header() sonra kaybolan tahrip ediliyor $_SESSION değişkeni / hakkında birçok mesaj okudum:

// set session here

session_regenerate_id(true);
session_write_close();
header("Location: /");

session_start() Herkes eksik olabilir bir şey biliyor mu, doğru yerlerde ayarlanır?

Index.php sayfada ben bu var:

session_start();
print_r($_SESSION);

// outputs nothing :'(

Kod oldukça karmaşıktır, bu nedenle sadece snippets tüm post olmaz.

5 Cevap

Bu soruyu kapatma ilgi olarak, biz bu şaşırtıcı değil ev sahibi de bu tür bir şey için bilinen dikkate alınarak, sunucu konfigürasyonu ile ilgili bir sorun olduğu sonucuna vardı.

Ben konumu başlıklarını kullanarak nedeniyle herhangi bir oturum ile ilgili sorunları görmedim - Eğer iki sayfada session_start diyorsun emin misin?


Hmm ... Bu sorunun cevabı yukarıda session_start bit ekledi önce çok daha mantıklı ve size session_start kullandığınız emin olduklarını gerçeğini belirtti. :-)

Sadece çıkış koymak; başlığından sonra: D Ben bu çözülür

header must be sent before session close

session_regenerate_id(true);

header("Location: /");
// the header must be sent before session close
session_write_close(); // here you could also use exit();

Kafa yönlendirmek sonra PHP komut dosyası çıkmanız gerekir:

header("Location: /");
exit();