在php会话中找不到变量


cannot find the variables in php session

我想使用php会话将用户名传递到第二个页面但它显示出错误。


注意:未定义的索引:在D:''software 2''wamp''wamp''www''session''s2.php的第5行中的nam


我的第一个页面(s1.php)是这样的

<html>
<head>
<?php
  session_start();     
?>
</head>
<body>
<p>hello</p>

<form method="get" action=" http://localhost/session/s2.php">
<input type="text" name="nam"><br>
<input type="submit" value="Submit"><br>

</form>
</body>
</html>

我的第二页(s2.php)在下面

<html>
   <head>
 <?php 
   session_start();
  echo $_SESSION['nam'];
?>
</head>
here is the second page
<body>
</body>
</html>

感谢

变量不会自动插入会话。你需要以某种方式插入它们。如果你想从表单$_get发布的get参数中获取变量,那就是你想要的。

例如:

$_SESSION['name'] = $_GET['name'];

浏览处理表单

您需要将会话启动置于的顶部

<?php
  session_start();     
?> 
<html>
<head>

您很可能没有看到生成的错误。

此外,在提交数据后,SESSION中还没有它,它将在$_GET['name']

我建议您在本地机器上工作时将error_level设置为E_ALL

在PHP中,表单中的变量通过GET或POST传递。在您的案例中,您使用了

<form method="get" action=" http://localhost/session/s2.php">

所以类型是GET(method="get")。要读取GET变量,请使用_GET,而不是_SESSION。如果需要POST变量,请使用_POST。

在您的情况下,使用_GET['nam']而不是_SESSION['nam']

您应该:

在echo$_SESSION['nam']之前添加此行;$_GET['nam']=$_SESSION['nam];

或echo$_GET['nam'];

好运