PHP会话变量未保持常量

PHP会话变量未保持常量,php,session,Php,Session,我在使用$\u Session[]时遇到问题,我正在尝试设置一个常量变量,该变量应在我的所有页面中都处于活动状态 当有人在login.php上成功登录时,它将变为活动状态($logged\u in设置为1) 下面是action.php的代码: <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/D

我在使用
$\u Session[]
时遇到问题,我正在尝试设置一个常量变量,该变量应在我的所有页面中都处于活动状态

当有人在login.php上成功登录时,它将变为活动状态(
$logged\u in
设置为
1

下面是action.php的代码:

<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
    if($logged_in==1) {
        $_SESSION['logged_in'] = 1;
        $_SESSION['logged_user'] = $username;
    }
?>
<head>
if (isset($_GET['do']) && $_GET['do'] === "login") {
$username = $_POST['username'];
$password_input = $_POST['password'];
$password = md5($password_input);

$result = mysqli_query($con,"SELECT * FROM users WHERE username='" . $username . "'");
while($row = mysqli_fetch_array($result)) {
if($password == $row['password']) {
echo "successful login";
$logged_in = 1;
}
else { echo "unsuccessful login";}
}
}
但是,正如您通过查看代码所看到的:我试图将其称为
,但什么都没有发生,为什么

编辑: 登录代码:

<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
    if($logged_in==1) {
        $_SESSION['logged_in'] = 1;
        $_SESSION['logged_user'] = $username;
    }
?>
<head>
if (isset($_GET['do']) && $_GET['do'] === "login") {
$username = $_POST['username'];
$password_input = $_POST['password'];
$password = md5($password_input);

$result = mysqli_query($con,"SELECT * FROM users WHERE username='" . $username . "'");
while($row = mysqli_fetch_array($result)) {
if($password == $row['password']) {
echo "successful login";
$logged_in = 1;
}
else { echo "unsuccessful login";}
}
}

…是的,我知道md5实际上做得不多;)

什么是
$logged\u in
?在上面的示例中,
$logged\u in
没有在任何地方定义。向我们展示您的login.php代码(应该设置
$\u SESSION['logged\u in']
,您应该使用它来检查)嗨,您的php错误日志中是否有任何php错误、警告或通知?SESSION\u start()不一定要在页眉等之前吗?当然,您可以将其放在页面顶部,您的错误是没有将登录定义为会话变量…会话_start()必须在内容发送到客户端之前,而不一定是在大多数人将内容发送到客户端的开始位置。另外,查找SQL注入。。。您的mysqli_查询调用易受攻击。