2013-05-02 70 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