Kayıp PHP oturum değerleri ardına senaryo üzerinde yönlendirme, ancak başka üzerinde yönlendirmelerden sonra korunmuş

5 Cevap php

Benim kayıt senaryo üzerinde i var:

// Save registration information into the database

// Set sessions
$_SESSION['var1'] = 'somevalue';
$_SESSION['var2'] = 'anothervalue';

header('Location: /somewhere');
exit();

Sonra benim giriş senaryo üzerinde i var:

// Check if user provided correct login credentials
if (correct) {
    $_SESSION['var1'] = 'somevalue';
    $_SESSION['var2'] = 'anothervalue';
}

header('Location: /somewhere');
exit();

Ne oldu oturum değişkenleri kayıt komut başlık yönlendirme sonra kayboldu ama onlar oturum açma komut yönlendirme sonra korunmuş olmasıdır.

Ben hem sayfalarına session_id() kontrol ettik ve onlar aynı değere sahip, her sayfanın üst kısmında session_start() dahil ve temelde Stackoverflow üzerinde bulunan bu ortak soruna çözüm çalıştı ama nedense hiçbir şey çalışmak gibiydi.

Ben yerine benim kod benim sunucu konfigürasyonu ile bir ilgisi olup olmadığını merak etmeye başlıyorum.

5 Cevap

Eğer www.example.com ve example.com arasında yönlendiriyorsunuz? Bu iki farklı etki vardır beri.

Session_write_close hakkında kılavuz sayfası bu veya benzer sorunları olan bir sürü insan yorum var. Bazıları "header ('location" satırından önce session_write_close arayarak sabit söylüyorlar.

Bu yazı: http://us.php.net/manual/en/function.session-write-close.php#86791

Onun için işe yaramadı diyor, ama çağrı session_regenerate_id () çalışması yaptı. (Bu tanımlama göndermek için oturum tanımlama değiştirir ve kuvvetler php.

Yine çerez gönderiyor gerekebilir. Bazı tarayıcılar sadece orijinal url var kurabiye dışında, bir yönlendirme sonra çerezleri göndermek olmadığını söyleyerek insanları okudum.

Bu eski bir konu olduğunu biliyoruz ama sadece bir sertifika ile yeni bir özel IP bir site taşındı ve seans başlığında ("konumu:") geçmek olmaz yönlendirmek ... eski konumda onlar sadece iyi geçen nerede . Çalıştı tek şey (true) session_regenerate_id ilave edildi; yönlendirme önce. Ben hala neden olarak merak ediyorum? Herhangi orada fikir?

Ben aynı sorunu vardı, bundan sonra ben her şeyi denedim:

exit();

session_write_close();

ya da $_SESSION['user'] = $user; ya da session_register("user");

session_start(); sayfa tüm Possibile geometrik pozisyonları

sonunda ... Ben konfigürasyonunda oturumun kaydetmek yolun klasör yazılabilir değildi bulundu.

Bir kez yazılabilir ve doğru kullanıcı ayarlamak için ayarlanmış, her şey bir cazibe gibi çalıştı.

Lütfen kaydetmek yolunu bulmak için, bakmak için phpinfo() session.save_path altında ne

neden exit () kullanmak? header ("location: / bir yerde"); idam edilecek script kalan önleyecektir.