表单提交后会话丢失 [英] session gets lost after form submit
问题描述
当用户链接到链接时,它会重定向到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屋!