这是第一个php,名为index.php
<?php
session_start();
$_SESSION['name']= $_POST['username'];
?>
<html>
<body>
<form action="test.php" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td></tr>
<tr>
<td><input type="submit" value="登录"/></td>
</tr>
</table>
</form></body></html>这是第二个php,名为test.php
<?php
session_start();
$_SESSION['name']=$_POST['username'];
if(isset($_SESSION['name']))
{
echo "你好".$_SESSION['name'];
}
else {
echo "你好,游客";
}
?>
为什么当session为空的时候,还是显示你好呢,而不是显示你好,游客呢?

解决方案 »

  1.   


    if(!isset($_SESSION['name'])||empty($_SESSION['name'])){
    }
      

  2.   

    你把第一个文件里的<?php?>中的内容删除
    第二个文件中修改成这样
    if(empty($_SESSION['name']))
    {
    echo "你好,游客";
    }
    else {
    echo "你好".$_SESSION['name'];
    }
    session_unset($_SESSION['name']);
    问题就解决了,记得$session中的数据会保持很久
      

  3.   


    <?php
    session_start();header("content-type:text/html;charset=utf-8");
    $_SESSION['name']=$_POST['username'];
    echo "username".$_POST['username']."<br />";
    if(empty($_SESSION['name']))
    {
    echo "你好,游客";
    }
    else {
    echo "你好".$_SESSION['name'];
    }
    session_unset($_SESSION['name']);
    ?>
      

  4.   

    第一个文件为session赋值有什么用,删之。if(isset($_SESSION['name']) && !empty($_SESSION['name']))
    {
    echo "你好".$_SESSION['name'];
    }
    else {
    echo "你好,游客";
    }