Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 会话变量在每次ajax调用后都未设置_Javascript_Php_Jquery_Ajax_Session - Fatal编程技术网

Javascript 会话变量在每次ajax调用后都未设置

Javascript 会话变量在每次ajax调用后都未设置,javascript,php,jquery,ajax,session,Javascript,Php,Jquery,Ajax,Session,我试图在每个ajax调用中修改一个会话变量(以便以后仅从db检索新内容),但在每个alt.ajax调用中都有一个会话变量$\u session['s']未设置!但是,未修改的会话变量$\u session[“iuser”]工作正常。我正在本地主机/wamp上测试这一点,并在npp中编码 <?php session_start(); //if(isset($_SESSION["s"])) $in=$_SESSION["s"]; //echo $_SESSION['sid']; $lin

我试图在每个ajax调用中修改一个会话变量(以便以后仅从db检索新内容),但在每个alt.ajax调用中都有一个会话变量$\u session['s']未设置!但是,未修改的会话变量$\u session[“iuser”]工作正常。我正在本地主机/wamp上测试这一点,并在npp中编码

   <?php
session_start();
//if(isset($_SESSION["s"]))
$in=$_SESSION["s"];
//echo $_SESSION['sid'];
$link=mysql_connect("localhost","root","");
mysql_select_db("secure_scrapbook") or die("Sorry :( Connection Error");
$query="Select data,user,id from public where public=1 && id>'$in' ORDER BY id DESC";
$result=mysql_query($query);
$i=mysql_fetch_array($result);
$_SESSION["s"]=$i["id"];
//echo $_SESSION['sid'];
if(!($_SESSION["s"]==$in))
{echo 0;
echo $in;
echo $_SESSION["iuser"];
echo $_SESSION["s"];
echo "check<br>";
}
?>

--jquery/ajax-----


setInterval(函数(){
$.ajax({
url:“gets.php”,
键入:“获取”,
数据类型:“html”,
成功:功能(数据){
//$(“#public”).html(数据);}
$(“#public”).html(数据+$(“#public”).html()++'-')}
});}, 5000); //5秒

我建议您这样调试您的呼叫:

<?php
session_start();
if (empty($_SESSION["s"])){
    echo 'EMPTY SESSION ';
    die;
}

$in = $_SESSION["s"];
$link=mysql_connect("localhost","root","");
mysql_select_db("secure_scrapbook") or die("Sorry :( Connection Error");
$query="Select data,user,id from public where public=1 && id>'$in' ORDER BY id DESC";
$result=mysql_query($query);
$i=mysql_fetch_array($result);
if (empty($i["id"])){
    echo 'EMPTY $i';
    die;
}
$_SESSION["s"]=$i["id"];
//echo $_SESSION['sid'];
if(!($_SESSION["s"]==$in))
{echo 0;
echo $in;
echo $_SESSION["iuser"];
echo $_SESSION["s"];
echo "check<br>";
}
?>

每次收到消息EMPTY SESSION或EMPTY$i check时:

  • 查看ajax标题并尝试逐步跟踪您的问题
  • 数据库中的元素没有ID
  • $in在可能ID的范围内
  • 美元是一个数字

试着这样做,如果“表中没有更多数据”被回显,这意味着您的db没有任何满足您设置的条件的数据


还有一件事,看到你的代码,它看起来好像$u SESSION[“s”]永远不会等于$in,所以我想你不需要使用if条件。

你确定你没有收到已经发送的
头吗?我觉得你的
前面有空格字符,会话没有问题,因为我回显了会话id,每次调用都是一样的。即使是“iuser”会话变量也会回显相同的值!尝试不使用ajax调用,直接进入php并在那里执行。检查输出内容。确保
$i[“id”]
不为null,也不为空。您可能应该检查
$i[“id”]
返回的内容的值。获得大量空会话。如何继续?很抱歉,但是注释掉
die
后回显“空会话”
并查看您得到的回报。在会话中的
$in
内容结束后跟踪。实际上,这是一个循序渐进的过程:(
<?php
session_start();
if (empty($_SESSION["s"])){
    echo 'EMPTY SESSION ';
    die;
}

$in = $_SESSION["s"];
$link=mysql_connect("localhost","root","");
mysql_select_db("secure_scrapbook") or die("Sorry :( Connection Error");
$query="Select data,user,id from public where public=1 && id>'$in' ORDER BY id DESC";
$result=mysql_query($query);
$i=mysql_fetch_array($result);
if (empty($i["id"])){
    echo 'EMPTY $i';
    die;
}
$_SESSION["s"]=$i["id"];
//echo $_SESSION['sid'];
if(!($_SESSION["s"]==$in))
{echo 0;
echo $in;
echo $_SESSION["iuser"];
echo $_SESSION["s"];
echo "check<br>";
}
?>
<?php
    session_start();
    //if(isset($_SESSION["s"]))
    $in=$_SESSION["s"];
    //echo $_SESSION['sid'];
    $link=mysql_connect("localhost","root","");
    mysql_select_db("secure_scrapbook") or die("Sorry :( Connection Error");
    $query="Select data,user,id from public where public=1 && id>'$in' ORDER BY id DESC";
    $result=mysql_query($query);
    if($i=mysql_fetch_array($result))
    {
        $_SESSION["s"]=$i["id"];
        //echo $_SESSION['sid'];
        if(!($_SESSION["s"]==$in))
        {
            echo 0;
            echo $in;
            echo $_SESSION["iuser"];
            echo $_SESSION["s"];
            echo "check<br>";
        }
    }
    else
        echo "No more Data in table";
?>