Php 无法从会话中输出值

Php 无法从会话中输出值,php,Php,我有3个php文件 第一:命名为“test.php” <?php if(isset($_POST['user']) && !empty($_POST['user'])){ header('Location:index-an.php'); } else{ echo 'pls input'; } ?> <form action='#' method='post'> user <input type='text' name='user'><

我有3个php文件 第一:命名为“test.php”

<?php

if(isset($_POST['user']) && !empty($_POST['user'])){
header('Location:index-an.php');
}
else{
echo 'pls input';
}

?>
<form action='#' method='post'>
user <input type='text' name='user'><br>
<input type='submit' name='submit' value='submit'>
</form>

用户
第二个名称为“core an.php”

<?php
session_start();
function loggedin()
{
    if(isset($_SESSION['user']) && !empty($_SESSION['user']))
    {
    return true;
    }
    else
    {
    return false;
    }
}
?>

第三个名为“index an.php”

<?php
require 'core-an.php';
if(loggedin())
{
$user=$_SESSION['user'];
echo 'hello '.$user.' have a nice day';
}
else
{
include 'test.php';
}

?>


当我输入值并按submit时,它不会输出任何内容。

从我看到的情况来看,您的
$\u POST
数组无法分配给
$\u会话['user']

因此,在
test.php
文件中,将php代码修改为:

 session_start();
   if(isset($_POST['user']) && !empty($_POST['user'])){
   $_SESSION['user'] = $_POST['user'];
    header('Location:index-an.php');
  }else{
    echo 'pls input';
  }

您没有为$\u会话['user']变量赋值。因此,执行else语句。因此,不要再次重定向到同一页面,而是将其重定向到一个测试页面,在该页面中,您实际将
用户名
分配给
$\u会话['user']
变量。这样做:

test.php

<form action='random.php' method='post'>
user <input type='text' name='user'><br>
<input type='submit' name='submit' value='submit'>
</form>
session_start();
$_SESSION['user'] = $_POST['user']
header('Location: /test.php');

在重定向到
index an.php
之前,您没有将任何内容保存到
test.php
文件中的
$\u SESSION
。尝试执行
$\u SESSION['user']=$\u POST['user']在重定向之前,查看它是否解决了问题。尝试放置
session_start()在每个文件中。那“#”在
操作中做什么
?哇,真管用!非常感谢@newfurniturethank。当我意识到自己的错误时,我感觉自己就像一只黑猩猩。