这是第一个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的内容呢
名为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的内容呢
$_SESSION['name']=$_POST['username'];
表单值 $_POST['username'] 来自哪呢?
你的index.php中表单提交到了 test.php ,而test.php 却没有任何赋值动作一个简单的做法是修改表单提交目标到 index.php ,而不是 test.php。提交完成后,你再打开 test.php 页面看看。
不过这样做并不完全正确,在初次访问时你会得到一个变量未定义的错误
把这句放到第二个文件里去,dream1206说的很好,最新版的php,需要检测一下post[]里面有没有值
你传值的位置是test.php
而你现在的页面是index.php
即便接收值的参数都叫$_POST['username'],
仍然是各自独立。一个为test.php中的$_POST['username'],一个是index.php中的$_POST['username']
因此本页的
$_POST['username']=="";
$_SESSION['name']=="",
所以跳转页面后当然没有值了。
你提交表单的时候$_POST['username']有值了,但应经跳到第二个文件运行了
这一句你该放入test里才行,修改如下:<?php
session_start();
$_SESSION['name']=$_POST['username'];
echo "你好".$_SESSION['name'];
?>
而你的index却post到了test去,test却没有接收任何值,也没有给session赋值,所以整个过程session一直都是空着呢.怎么能打印出内容来呢