表单提交后会话丢失

时间:2012-03-27 22:14:48

标签: php html forms session refresh

当用户链接到链接时,它会重定向到edit.php - 这是一个例子:www.cars.com/edit.php?id = 23

在edit.php中,我使用_GET将值存储在会话中。该值存储在$_session['user']中,但是当提交同一页面上的表单时,echo $_session['user']不显示任何内容 - 如何使其显示值?

<?php 
 session_start();
 $_session['user']=$_GET['id'];  // I use _GET to store the value in session
if( isset($_POST['submit'])) {
  echo $_session['user'];

}

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="formI2D"     enctype="multipart/form-data" id="formI2D" />

    

1 个答案:

答案 0 :(得分:2)

这是因为你正在重新声明你的$ _SESSION ['用户'],即使它是一个POST(我认为)。

您可以通过在表单的操作中添加?id=$_GET['id']或将$_SESSION初始化包裹起来来解决此问题:

if (isset($_GET['id'])) {
     $_SESSION['user']=$_GET['id'];
}

此外,你应该使用大写的PHP全局数组($_POST, $_COOKIE, $_SESSION等)