AJAX + PHP: Oturum zaman aşımı

3 Cevap php

Benim $ _SESSION değişkenleri ajax ile denir benim diğer PHP sayfası üzerinden yapılmaktadır değil neden kimse bana söyleyebilir misiniz.

Tüm sayfalar) (session_start var;

It works on my local machine, ama benim onu ​​sunucuya yüklediğinizde, bu işe yaramazsa, ve tazelede geri giriş ekranına beni alır ...

EDIT:

Oturum değişkenleri kez bir kullanıcı günlükleri kaydedilir

$_SESSION['user_id'] = $user_id;
$_SESSION['username'] = $user_email;
$_SESSION['name'] = $un; 
$_SESSION['login_times'] = $login_time;
$_SESSION['profile_pic'] = $profile_pic;

Ve ne zaman ajax komut diğer PHP aramalar:

 session_start();

 $user_id = $_GET['id'];
 $newsfeed_id = $_GET['nf_id'];
 $comment = $_GET['comment'];

 $conn = mysql_connect('localhost', 'admin', 'root') or die(mysql_error());
 mysql_select_db('main') or die(mysql_error());

 // insert new comment

 $query = "INSERT INTO newsfeed_comments ".
 "VALUES ('', '{$_SESSION['user_id']}', '{$comment}', '{$newsfeed_id}')";

  mysql_query($query) or die(mysql_error());

Ama hiçbir şey yanıt metninde döndürülür, ve $ _SESSION ['username'] değerleri unset olmuştur ve ben geri giriş yönlendirilmiş olsun.

Kimse sorunun ne olduğunu biliyor mu?

Teşekkürler!

3 Cevap

(Oturum çerezleri dahil) tüm çerezleri çerez geçerli olacaktır için önek tanımlayan bir yol parametresi vardır. Eğer tüm etki sadece için "/" olarak ayarlayın için oturum geçerli olmak istiyorsanız.

Oturum tanımlama parametreleri session_set_cookie_params kullanılarak tanımlanabilir.

Belirli bir etki için OTURUM verileri kaydetmek çünkü Şimdi ben bunu düşünüyorum, muhtemelen olacaktır. Localhost üzerinde sadece localhost ama bir sunucuda oturum sadece sitenizin belirli bir kısmı için kaydedilmiş olabilir. De etki alanını belirlemek için ekstra bir param geçmek.

Eğer giriş sayfasında bir şey çıktısını almadan () session_start yaptın?

Oturumun konfigürasyonu burada: http://php.net/manual/en/session.configuration.php Üzgünüm, çerezleri kullandığınız Şaşırdınız.

Denemek

var_dump($_SESSION); die();

Her sayfada ne var görmek için.

Ayrıca her yerde oturum içine kaydettikten sonra () başlığı diyorsunuz?

http://www.chipmunkninja.com/Troubles-with-Asynchronous-Ajax-Requests-g@ iyi şanslar: Bu durum hata ayıklama güzel bir makale!

Ben sorun ... Bu gerçekten sinir bozucu olduğunu ne anladım, ama hızlı bir düzeltme bulunuyor.

i 3 dizinleri var

/ <- root /ajax <- for ajax php files /js <- for javascript files

Ben ajax / comment.php istekleri gönderme ve farklı bir etki alanı olarak / dizin ajax tedavi. Yani ben kök dizine tüm Ajax php dosyalarını taşındı ve ajax_File.php onları değiştirildi ve javascript düzenlenmiş ve şimdi çalışıyor.

Bu gerçekten sinir bozucu, çünkü bu gerçekten berbat, ama bir alt işe almak için bir yol olup olmadığını herkes biliyor.