无法从会话输出值

时间:2013-06-11 14:28:18

标签: php

我有3个php文件 1st:命名为'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';
}

?>

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

2 个答案:

答案 0 :(得分:0)

从我看到的情况来看,您的$_POST数组无法分配到$_SESSION['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';
  }

答案 1 :(得分:0)

您没有为$ _SESSION ['user']变量分配任何值。因此,执行else语句。因此,不是再次重定向到同一页面,而是将其重定向到测试页面,在该页面中您实际将username分配给$_SESSION['user']变量。所以这样做:

<强> test.php的

<form action='random.php' method='post'>
user <input type='text' name='user'><br>
<input type='submit' name='submit' value='submit'>
</form>

<强> random.php

session_start();
$_SESSION['user'] = $_POST['user']
header('Location: /test.php');