Neden AJAX sözde PHP script oturum değişkenleri erişemiyor?

5 Cevap php

Ben bu yüzden böyle ayarlanmış bir oturum değişkeni ile bir PHP komut dosyası var:

$_SESSION['VAR1'] = "test"

Şimdi, bir jQuery başlatılan POST isteği ile AJAX kullanıyorum, ve bu yüzden gerekli tüm fonksiyonlara sahip adında bir betik ajax.php var.

Ben ajax.php içinde (echo $_SESSION['VAR1']) benim oturum değişkeni erişmeye çalıştığınızda Ve, hiçbir şey üretir.

Oturum AJAX istekleri çalışmıyor mu?

5 Cevap

Eğer erişmek önce oturumuna erişen her sayfada bunu yapmak gerekir:

session_start();

İşte bunu almaya çalışır oturum değişkeni ve AJAX sayfasını ayarlar sayfasında hem de gelir. Her ikisi de session_start() aramak gerekir.

Sürece AJAX isteği aynı etki alanındaki bir komut dosyası çağırır (ve böylece oturum tanımlama erişim alır) gibi oturum değişkenleri erişim alamadım hiçbir neden yoktur. Sonuçta bir AJAX isteği sadece başka bir HTTP isteği.

Her iki sayfa için alan adları (AJAX konteyner ve AJAX komut yani aynı) olduğundan emin olun. İşte bir örnek:

http://mydomain.com/login.php           (set session variables here)
http://mydomain.com/ajax-container.php  (session variables are visible here)
http://mydomain.com/ajax-script.php     (session variables are visible here)
http://www.mydomain.com/ajax-script.php (session variables are NOT visible here)

Başka biri:

http://www.mydomain.com/login.php          (set session variables here)
http://www.mydomain.com/ajax-container.php (session variables are visible here)
http://www.mydomain.com/ajax-script.php    (session variables are visible here)
http://mydomain.com/ajax-script.php        (session variables are NOT visible here)

Ben de sadece önce bir, küçük küçük, görmek zor alana sahip kendimi yakalandı "

Salman A yazdıklarını bir zeyilname:

Bir https:// dosyasında bir oturum değişkeni ayarlamak ve bir http:// dosya ile erişmeye çalışırsanız mümkün olmayacaktır ...

https://www.example.com/index.php - call session_start() and set session variable
http://ww.example.com/index_tmp.php - unable to access session variable

ve tersi ...

http://www.example.com/index.php - call session_start() and set session variable
https://ww.example.com/index_tmp.php - unable to access session variable

Aksine:

https://www.example.com/index.php - call session_start() and set session variable
https://ww.example.com/index_tmp.php - Able to access session variable

Ve:

http://www.example.com/index.php - call session_start() and set session variable
http://ww.example.com/index_tmp.php - Able to access session variable

Benim kendi hata benim ajax file.I BOM karakter oldu file.I occurs.I BOM karakter ve kod eserler çıkarıldı (session_start tarafından oturumu başlatmak için çalıştı) ama "başlık bilgileri değiştirilemiyor" php adında bir ajax oturum değişkeni kullanmanız gerekir edildi çok iyi.