我需要设置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']="";
}
提前感谢您的帮助。