Php 无法从会话中输出值
我有3个php文件 第一:命名为“test.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'><
<?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。当我意识到自己的错误时,我感觉自己就像一只黑猩猩。