2013-05-02 33 views
0

我是否必須做類似var session = "<?php = $_SESSION['sessionname'] ?>";
或者是否有jquery語句?


我想能夠檢查會話是否存在使用jQuery

我需要這樣做,因爲當用戶輸入他的用戶名,ajax加載一個php文件來驗證它。如果電子郵件不匹配,這個php開始會話。我試過JSON,但它似乎並沒有爲我工作。

我會很樂意聽到任何其他的方式來解決這個問題,以及:)如何查看php會話是否已通過jquery設置

+0

工作你爲什麼要這麼做? – Blender 2013-05-02 04:55:05

+0

PHP會話只存在於服務器上,而不是客戶端上。你可以使用AJAX調用來查明。 – Barmar 2013-05-02 04:55:07

+0

你可以使用ajax來檢查。請注意,你需要在你的php中使用'session_start()'。 個人而言,我會非常小心地通過ajax發送$ _SESSION數據。結果將在控制檯中顯示給每個有智慧的人。 – Daniel 2013-05-02 05:00:30

回答

0

PHP會議是在服務器端,而不是在客戶端。下面是另一種方法...

您可以使用下面的插件 https://github.com/AlexChittock/JQuery-Session-Plugin

// To Store 
$(function() { 
    $.session.set("myVar", "value"); 
}); 


// To Read 
$(function() { 
    alert($.session.get("myVar")); 
}); 
+1

使用此插件創建的會話與PHP會話不同。 – Barmar 2013-05-02 04:57:03

+0

我必須安裝插件才能使用此代碼? – burey 2013-05-02 04:59:37

0
data = { 
    action: "session" 
} 

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    url: ajaxurl, 
    data: data, 
    success: function (json) { 
     console.log(json.sessionvalue); 
     if(json.session == "true"){ 
      // code here 
     } 
    } 
}); 

在PHP端

if(isset($_POST['action']) && $_POST['action'] == 'session'){ 
    session_start(); 
    return json_encode(array("sessionvalue" => $_SESSION['mysessionvar'])); 
} 

您也可以將期多維數組

$array = array("sessions"=>array('value1', 'value2', 'value3'), 'numbers'=>array(0,5,6,8)); 

return json_encode($array); 

值可以通過使用json.sessions [0]等進行檢索..

當你提交的Ajax調用,你應該總是與console

+0

那麼,這將返回json數組值? ..如何設置功能像'if(json.array == somethin)' – burey 2013-05-02 05:13:22

+0

增加了一些信息...只是玩你的數組。使其具有聯想性和多維性,並查看控制檯中返回的內容。 – Daniel 2013-05-02 05:28:23