会话无法使用PHP
我的网站在访问时不会启动会话,我不知道为什么,但我的网站是这样工作的:会话无法使用PHP,php,session,Php,Session,我的网站在访问时不会启动会话,我不知道为什么,但我的网站是这样工作的: <?php session_start(); $title = "Home"; include("include/header.php"); include("include/functions.php"); ?> ...HTML stuff here... <?php include("footer.php"); ?> …这里的HTML内容。。。 但是当我检查Cook
<?php
session_start();
$title = "Home";
include("include/header.php");
include("include/functions.php");
?>
...HTML stuff here...
<?php
include("footer.php");
?>
…这里的HTML内容。。。
但是当我检查Cookies(Firefox的插件)时,没有启动任何会话。。。我使用了session_regenate_id();但它根本不起作用
它无法登录,因为没有会话,我的网站中没有任何会话_destroy(),只有在注销中
但有趣的是,当我登录(还没有刷新或导航)然后点击注销按钮时,我的网站上有一个会话,然后当我再次登录时,它告诉我我已登录,但如果我登录并导航或刷新,它不会告诉我我已登录,因为没有会话
注销:
<?php
session_start();
session_destroy();
setcookie("cookie-name", "", time()-60, "", "", 0);
header("Location: ../index.php");
exit;
?>
我该怎么办?在访问和使用会话的每个文件的开头必须有
会话\u start()
。名称有误导性,session\u start()
实际上并不启动新会话,而是初始化PHP会话菜单。您必须在正在访问和使用会话的每个文件的开头都有session\u start()
。名称有误导性,session\u start()
实际上并不启动新会话,而是初始化PHP会话菜单。不确定它是否相关,但有一个奇怪的PHP怪癖,要求会话\u start()位于的正下方,不确定它是否相关,但是有一个奇怪的PHP怪癖,要求SESSION_START()位于的正下方,这可能是因为您在给出的两个示例中都没有设置会话,您必须有一行类似于下面的行才能真正创建会话,然后要访问所有后续页面上的会话变量,需要session_start()
这可能是因为您在所给出的任何一个示例中都没有设置会话,您必须有下面这样一行来实际创建会话,然后在需要会话的所有后续页面上访问会话变量
它看起来不像您在会话或cookie中设置的任何内容
如果要在会话中传递信息,需要在$\u会话变量中指定必要的值
例如,在主页上,您可以执行以下操作:
<?php
session_start();
$_SESSION['myVariable'] = "my text";
?>
然后在随后的任何页面上,您都可以访问已设置的变量
<?php
session_start();
echo $_SESSION['myVariable']; //This will print "my text"
?>
它看起来不像会话或cookie中的任何设置
如果要在会话中传递信息,需要在$\u会话变量中指定必要的值
例如,在主页上,您可以执行以下操作:
<?php
session_start();
$_SESSION['myVariable'] = "my text";
?>
然后在随后的任何页面上,您都可以访问已设置的变量
<?php
session_start();
echo $_SESSION['myVariable']; //This will print "my text"
?>
您使用的是什么错误报告级别?您使用的是什么错误报告级别?我也尝试过,但似乎什么都没有。如果问题没有解决,为什么这是公认的答案?谁说问题没有解决?如果它被接受,那意味着他们认为它有帮助。下次在否决OP指出的最佳答案之前,请三思而后行。@bpterson76我确实希望被接受的答案能够解决问题中的问题。此外,我对此投了反对票,因为我正在寻找解决同一问题的方法,但这并没有解决它。否决票是指其他人以更多的票数查看答案。我也尝试过,也尝试过var_dump($_SESSION),但似乎什么都没有。如果问题没有解决,为什么这是公认的答案?谁说问题没有解决?如果它被接受,那意味着他们认为它有帮助。下次在否决OP指出的最佳答案之前,请三思而后行。@bpterson76我确实希望被接受的答案能够解决问题中的问题。此外,我对此投了反对票,因为我正在寻找解决同一问题的方法,但这并没有解决它。下一票表示其他人会以更多的票数查看答案。index.php、login.php、register.php在包含header.php和其他文件之前,在最开始就有session_start()。index.php、login.php、register.php有session_start()在开始之前,它包括header.php和其他文件。当我想登录时,它会写入会话:$\u session['USER']=$row['username'];但是在输出中,它不工作,会话根本不工作。您是否检查了$row['username']是否包含值?当我要登录时,它会写入会话:$\u session['USER']=$row['username'];但是在输出中,它不起作用,会话根本不起作用。您是否检查过$row['username']是否包含一个值?我知道如何进行会话,如果在会话开始()之后写入会话,它就不起作用。我知道如何进行会话,如果在会话开始()之后写入会话,它就不起作用