Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 PHP会话未通过多个页面保存变量_Javascript_Php_Session Variables - Fatal编程技术网

Javascript PHP会话未通过多个页面保存变量

Javascript PHP会话未通过多个页面保存变量,javascript,php,session-variables,Javascript,Php,Session Variables,好的,那么我的代码将验证用户并将其登录到他们的帐户。我的用户验证代码是一个单独的文件,没有HTML,只有PHP。然后它会在我的主页上回显true或false,如果为true,则会在用户登录时将它们重定向到主页。我的登录文件如下: while ($row = mysql_fetch_array($res)){ if ($row['password'] == $pass){ echo "true"; session_start(); $_SESSION["username"] = $user; }

好的,那么我的代码将验证用户并将其登录到他们的帐户。我的用户验证代码是一个单独的文件,没有HTML,只有PHP。然后它会在我的主页上回显true或false,如果为true,则会在用户登录时将它们重定向到主页。我的登录文件如下:

while ($row = mysql_fetch_array($res)){ 
if ($row['password'] == $pass){
echo "true";
session_start();
$_SESSION["username"] = $user;
} else {
echo "false";
}
}
如果代码返回true,javascript代码将使用window.location重定向它们。在他们获得的页面home.php上,php代码(不是html)如下所示:

<?php session_start(); ?>
<script>
var ses = "<?php echo $_SESSION["username"]; ?>";
console.log(ses);
</script>

var-ses=“”;
控制台日志(ses);

出于某种原因,它什么也不记录。它仍然会记录,但会记录一个空白变量。如果有人能帮忙,那太棒了!谢谢。

您需要移动
echo
语句。在
session\u start()之前,您不能有任何输出。因此,它应该是:

session_start();
echo "true";

请参见

$user变量在哪里$_会话['username']=$row;在上面我没有包括文件的其余部分,但它是一个变量,因为登录确实有效,但会话变量不会保留。我也试过用“嘿”代替$user,但仍然没有幸运的是你必须在之前使用session\u start,而你为什么有一个
while
循环?查询能否为同一用户返回多行?如果有两行,这不会让你回显
truetrue
吗?好的。现在就试试!谢谢。不,还是不工作。不知道为什么。确保在此之前没有任何其他输出。像这样?虽然($row=mysql\u fetch\u array($res)){if($row['password']==$pass){session\u start();$\u session[“username”]=“hey”;echo“true”;}否则{echo“false”;}}我的意思是检查所有在此之前运行的代码,确保它不会产生任何输出。确保在