$ _SESSION Ayarlamak için jQuery ajax nasıl kullanılır?

3 Cevap php

Ben ajax ama alışkanlık $ _SESSION set yaşıyorum sorunu kullanan sistemde basit bir günlük oluşturmak için çalışıyorum.

login.js:

 $('#bt-login').click(function(){
        var login = $('#login').serialize();
        $.ajax({
            type: "POST",
            url: 'widgets/Login/loginFunction.php',
            data: login,
            cache: false,
            success: function(msg){alert(msg)}
        });
});

loginFunction.php:

 <?php
     include_once '../../dbConfig.php';
     include_once '../../config.php';

     session_start();

      $usr = mysql_escape_string($_POST['username']);
      $pass = mysql_escape_string($_POST['password']);
      $remember = intval($_POST['rememberMe']);

      $row = mysql_fetch_assoc(mysql_query("SELECT usr, id FROM members WHERE usr='".$usr."' AND pass='".md5($pass)."'"));

      if($row['usr']){
          $_SESSION['usr'] = $row['usr'];
          $_SESSION['id'] = $row['id'];
          $_SESSION['rememberMe'] = $remember;
          setcookie('DirtPileGames',$remember);
      }

 ?>

Şimdi nedense loginFunction.php $ _SESSION ayarı değildir. Ben bir yenileme yapmak ve $ _SESSION boştur.

Herkes neden bu alışkanlık iş herhangi bir fikirleri var mı.

3 Cevap

Oturum yerde) yanlışlıkla (session_destroy demeyeceğiz varsayarak geçerli olmalıdır çünkü, belirli bir sorunu bilmiyorum. Hata ayıklama için bazı tavsiyeler - () sayfalarında eşleşen emin session_id olun; komik bir şey oluyor yoksa. Session_write_close () çağırarak açıkça deneyebilirsiniz. Buna ek olarak onun değil, basit bir mantık hatası emin olmak için (kullanıcı yok olduğunda) hata durumunda $ _SESSION şey ayarlayın. Ayrıca, oldukça lütfen bir md5 kullanmayın. Bazı sha varyant, ve tuz kullanımı.

Düzenleme: session_name söz ()

Eğer diğer sayfalarda ona bakın böylece bu çağrı oturumun adını giderir. Eğer aynı oturumu adlandırma olmadan başka sayfada session_start () yaparsanız, bu yeni kimliği ile yeni bir oturum doğacaktır.

Oturum adı isteği başlangıç ​​anda session.name saklanan varsayılan değerine sıfırlanır: php belgelerine unutmayın. Böylece, (() olarak adlandırılır ve önce session_start () veya session_register) her istek için () session_name aramak gerekir.

Eğer oturum değişkenleri erişmek veya ayarlamak istediğiniz her zaman session_start () çağrı emin olun. Eğer bir sayfayı yenileyin ilk ne zaman (session_start çağrı sürece) boş olacaktır.

Oturumlar kurabiye bağlıdır, bir izin denemek

setcookie('DirtPileGames',$remember);

Bu konuyu temizler görmek, bir sürü sorunlar php yığını bağlıdır.