0

我有 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';
}

?>

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

4

2 回答 2

0

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

测试.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');
于 2013-06-11T14:37:02.163 回答
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';
  }
于 2013-06-11T14:35:08.770 回答