a.php:
<?php
session_start();
$valid_user="test";
$_SESSION['valid_user']=$valid_user;
echo $valid_user;
?>
<a href="b.php">link</a>b.php:
<?php
session_start();
if($_SESSION['valid_user'])
{
echo "欢迎你,$valid_user";
}
else
{
echo "error";
}
?>

解决方案 »

  1.   

    上面正解,但建议:
    $_SESSION['valid_user']=$valid_user;

    两个变量名(valid_user)别同名。
      

  2.   

    if($_SESSION['valid_user'])
    {
    echo "欢迎你,$valid_user";
    }
    ==================
    echo "欢迎你,".$_SESSION['valid_user']
    是这样输出的吧?$valid_user是变量不能跨网面读取的吧。
      

  3.   

    这个变量应该是没有问题的。实际上,这些文件以前是OK的,后来系统重装了。PHP,MYSQL,APACHE都重装了。重装之后就不好使了奇怪呀奇怪!
      

  4.   

    BILLSJONE(BILL_JONE) 说的对 建议搂主调试的时候把php.ini中的display_error设置为On,提示所有警告和错误信息a.php:
    <?php
    session_start();
    $valid_user="test";
    $_SESSION['valid_user']=$valid_user;
    echo $valid_user;
    ?>
    <a href="b.php">link</a>b.php:
    <?php
    session_start();
    if(isset($_SESSION['valid_user']))
    {
    echo "欢迎你,{$_SESSION['valid_user']}";
    }
    else
    {
    echo "error";
    }
    ?>
      

  5.   

    PHP.INI中的register_globals可能是OFF,
    echo "欢迎你,$valid_user";
    改为
    echo "欢迎你,".$_SESSION['valid_user'];
    试试。
    或register_globals设为ON。
      

  6.   

    按照shyli的方法,搞定了。
    多谢各位。