Yönlendirme sonra oturum değişkenleri kaybetmek

5 Cevap php
  1. Kullanıcı adınızı ve şifrenizi doldurur.
  2. Doğruysa, sayfa böyle bir oturum değişkeni user_id gibi bazı bilgileri yükler.
  3. Script header('Location') yönlendirme yapar.
  4. Her nasılsa sonraki sayfa oturumu tanımıyor ... Nasıl oluyor?

Yönlendirme aynı etki için, ve tüm sayfalar var session_start();

Ve ben FF ... Garip göre IE gerçekleşmesi daha olası bulundu.

5 Cevap

Ben sadece çözüm basitçe header(..) yönlendirmesi altında exit(); talimatı eklemek oldu, benzer bir sorunu vardı.

Bu çerezler etkin değil mümkün mü?

Sipariş (oturum değişkenleri bir çatışma içine girmeden aynı zamanda tarayıcı ve benim tarayıcıda kullanılabilir nasıl yani) belirli bir istemci örneği ile oturum değişkenleri ilişkilendirmek edebilmek için, bir "oturum kimliği" (ya da "SID" ) seans başına oluşturulur. Bu kimlik genellikle çerez şeklinde, istemci yanı sıra, sunucu üzerinde saklanır. Çerezler etkin değilse sunucu kimliği müşteriye ait ne oturumu bilmek böylece Ancak, oturum kimliği her isteğinde URL sorgu dizesi bir parçası olarak birlikte geçirilir.

Bir header() çağrısıyla yönlendirme, PHP otomatik olarak yeni bir istek içine SID girmiyorsa, bu yüzden şeklinde, kendiniz eklemek gerekir:

header("Location: my_url.com/my_page.php?" . SID)

burada SID is a constant defined by PHP that contains the necessary part of the query string (equivalent to session_name() . '=' . session_id(), bir oturum kimliği varsa).

Passing the Session ID daha fazla bilgi için bkz.

İki düşünceler:

  1. Şey tarayıcıya gönderilmeden önce session_start (), komut üst kısmında bulunur?
  2. Etki alanı tam olarak aynı mı? www.mydomain.com mydomain.com için yeniden yönetmenlik açıklamak soruna yol açacak.
header("Location: my_url.com/my_page.php?" . SID)
exit();

I exit() altına eklenmiş sonra sadece çalıştı header();

WordPress belgelerine kullanıcının parolası değiştirilirse çerezler silinecektir belirtiyor. Yani ne olursa olsun, bir yönlendirme olur olsun, oturumu öldürecek. Madem (diğer yanıtlar önerildiği gibi, ve bir exit() bunu olabilir) oturumda daha temizlenmeye çerezleri engellemek gibi kalmalıdır.

Note: If current user's password is being updated, then the cookies will be cleared!

http://codex.wordpress.org/Function_Reference/wp_update_user