表单提交后会话丢失 [英] session gets lost after form submit

查看:183
本文介绍了表单提交后会话丢失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



在编辑.php,我使用 _GET 来存储会话中的值。该值存储在 $ _ session ['user'] 中,但当同一页面上的表单被提交时 echo $ _session ['user'] 什么都不显示 - 我怎样才能让它显示值?

 <?php 
session_start();
$ _session ['user'] = $ _ GET ['id']; //我使用_GET将值存储在会话
中if(isset($ _ POST ['submit'])){
echo $ _session ['user'];


$ b< form method =postaction =<?php echo $ _SERVER ['PHP_SELF'];?> name =formI2Denctype =multipart / form-dataid =formI2D/>




解决方案

这是因为即使它是一个POST(我认为),你也要重新声明你的$ _SESSION ['user']。



通过在表单的动作中添加?id = $ _ GET ['id'] ,或者通过包装 $ _ SESSION 初始化如下:

  if(isset($ _ GET ['id'])){
$ _SESSION [''用户 '] = $ _ GET [' ID'];





$ b

另外,你应该使用大写的php全局数组( $ _ POST,$ _COOKIE,$ _SESSION 等)


When a user links to link it redirects to edit.php - here's an example: www.cars.com/edit.php?id=23

In edit.php, I use _GET to store the value in a session. The value is stored in $_session['user'] but when the form on the same page is submitted echo $_session['user'] displays nothing - how can I make it display the value?.

<?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" />

解决方案

It's because you're redeclaring your $_SESSION['user'] even when it's a POST (I think).

You can fix this by adding ?id=$_GET['id'] in you form's action, or by wrapping your $_SESSION initialisation like that:

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

Also, you should use uppercase for php global arrays ($_POST, $_COOKIE, $_SESSION etc)

这篇关于表单提交后会话丢失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆