使用Javascript(AJAX)更改PHP会话变量

时间:2014-09-17 18:27:12

标签: javascript php ajax session undefined

我需要设置PHP会话变量或更改为""或者通过javascript获取它。由于某种原因,变量没有设置,也没有得到。 javascript可以对此有任何限制吗?以下是示例代码:

JS(获取变量):

function getSessionVariable(variable){
if(typeof variable=="string"){
    var xhttpSession = new XMLHttpRequest();
    xhttpSession.open('POST','session.php',false);
    xhttpSession.onreadystatechange= function(){
        if(xhttpSession.readyState==4 && xhttpSession.status==200){
            return xhttpSession.responseText;
        }
    }
    xhttpSession.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    xhttpSession.send("sessionValue="+variable+"&command=get");
}

上面的JavaScript代码获得了一个正常的结果,由调试器显示,但由于某种原因,为函数getSessionVariable(' userName')分配的变量是未定义的(尽管调试器显示的事实)例如" return =' Bob'")

session.php文件

if(isset($_REQUEST['command']) && $_REQUEST['command']=='get' && 
isset($_REQUEST['sessionValue'])){

    $value = $_REQUEST['sessionValue'];
    $res = $_SESSION[$value];
    echo ($res);
}

更改值时也一样:

function logInCheck(){
var userName = getSessionVariable('userName');
if(document.getElementById('name').value!= userName && userName!=undefined){
    if(getCookie('logined')=="true"){
        var xhttpSession = new XMLHttpRequest();
        xhttpSession.open('POST','session.php',true);
        xhttpSession.onreadystatechange = function(){
            if(xhttpSession.readyState==4 && xhttpSession.status==200){
                xhttpSession.abort();
            }
        }
        xhttpSession.send("command=end")}
    }

session.php文件

if(isset($_REQUEST['command']) && $_REQUEST['command']=="end" && isset($_REQUEST['userName'])){
    $userName =  $_REQUEST['userName'];
    $result = mysql_query('SELECT user_id FROM users WHERE userName="{$userName}"');
    $row = mysql_fetch_array($result);
    $user_id =$row['user_id'];
    mysql_query("DELETE FROM userlist WHERE user_id= '{$user_id}'");
    $_SESSION['userName']="";
    $_COOKIE['logined']="";
}

提前感谢您的帮助。

0 个答案:

没有答案