这是第一个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();
echo "你好".$_SESSION['name'];
?>为什么在test.php中显示不出session的内容呢

解决方案 »

  1.   

    在 index.php 中你为session赋值,可想想看 
    $_SESSION['name']=$_POST['username'];
    表单值 $_POST['username'] 来自哪呢?
    你的index.php中表单提交到了 test.php ,而test.php 却没有任何赋值动作一个简单的做法是修改表单提交目标到 index.php ,而不是 test.php。提交完成后,你再打开 test.php 页面看看。
    不过这样做并不完全正确,在初次访问时你会得到一个变量未定义的错误
      

  2.   

    $_SESSION['name']=$_POST['username']; 
    把这句放到第二个文件里去,dream1206说的很好,最新版的php,需要检测一下post[]里面有没有值
      

  3.   

    <form action="test.php" method="post">
    你传值的位置是test.php
    而你现在的页面是index.php
    即便接收值的参数都叫$_POST['username'],
    仍然是各自独立。一个为test.php中的$_POST['username'],一个是index.php中的$_POST['username']
    因此本页的
    $_POST['username']=="";
    $_SESSION['name']=="",
    所以跳转页面后当然没有值了。
      

  4.   

    运行第一个页面,$_POST['username'];没有post的数据接收,提交了之后,到了test.php页面,session无值,所以不能显示呀
      

  5.   

    $_SESSION['name']=$_POST['username'];直接写在test.php前边就是了啊,你提交到test.php,原来的怎么会有值得设定
      

  6.   

    第一文件中:$_SESSION['name']=$_POST['username']; $_POST['username']是没有值的啊。
    你提交表单的时候$_POST['username']有值了,但应经跳到第二个文件运行了
      

  7.   

    $_SESSION['name']=$_POST['username'];
    这一句你该放入test里才行,修改如下:<?php
    session_start();
    $_SESSION['name']=$_POST['username'];
    echo "你好".$_SESSION['name'];
    ?>
      

  8.   

    原因很简单,执行index的时候$_post取不到任何的内容,因为没有post过来内容嘛,所以你给session赋值的内容是空的嘛
    而你的index却post到了test去,test却没有接收任何值,也没有给session赋值,所以整个过程session一直都是空着呢.怎么能打印出内容来呢