Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP$\会话-在页面提交过程中,一些值保留,其他值丢失_Php_Post_Session Variables - Fatal编程技术网

PHP$\会话-在页面提交过程中,一些值保留,其他值丢失

PHP$\会话-在页面提交过程中,一些值保留,其他值丢失,php,post,session-variables,Php,Post,Session Variables,$\u SESSION成功地维护了页面提交过程中的一些字段,但只保留了我自己创建的$\u SESSION初始化函数中专门保存的字段 如果实际调用了我的$\u会话初始化函数,这并不奇怪。。明显地它的全部目的是保留一些键值,并从$\u会话数组中擦除所有其他键值 但是,即使我的代码没有调用该函数,也会发生这种情况。 我有一个视图页面,其中包含一个已提交的表单,标识提交时要触发的控制操作文件 我验证$\u会话内容是否作为查看页面显示的一部分。它显示完整的$\u会话数组字段集 然后,我在识别的控制文件中,

$\u SESSION
成功地维护了页面提交过程中的一些字段,但只保留了我自己创建的
$\u SESSION
初始化函数中专门保存的字段

如果实际调用了我的
$\u会话
初始化函数,这并不奇怪。。明显地它的全部目的是保留一些键值,并从
$\u会话
数组中擦除所有其他键值

但是,即使我的代码没有调用该函数,也会发生这种情况。

我有一个视图页面,其中包含一个已提交的表单,标识提交时要触发的控制操作文件

我验证
$\u会话
内容是否作为查看页面显示的一部分。它显示完整的
$\u会话
数组字段集

然后,我在识别的控制文件中,在会话开始()之后立即打印会话内容

在用户点击submit之前,会有一整套的
$\u SESSION
值 在用户点击submit后,大多数都会立即消失,但我选择在
$\u会话
初始化中保留的任何内容都会被保留

我自己的代码都不可能在两者之间运行:这里只有纯PHP

我对此有两个理论。 1.PHP在后台做了一些事情,碰巧有一个我错误使用的内部函数名,它调用我的函数时优先于同名的系统函数,从而导致我的
$\u会话
被初始化

因此,我更改了
函数名(以清除会话())
->同样的问题

  • 当我在应用程序开始时预先初始化
    $\u会话
    时,有关运行该函数的内容是为
    $\u会话
    数组中的那些字段提供一组不同于稍后添加的其他字段的属性。因此,只有这些字段在整个提交页面的一般性丢失中幸存
  • 选项2似乎是唯一一个甚至可能不疯狂的答案。 有人知道这是否有一点点可能吗


    或者,可能还会发生什么?

    选项1是不可能的,PHP不允许您创建与内置函数名冲突的函数。如果不看到代码,就无法帮助您更新答案,显示您正在做什么。选项2是不可能的。会话中存储的变量没有属性,它们只是assoc数组中的值。显示你的代码,你的代码必须做一些事情,以消除这些变量,没有魔术涉及感谢确认。。。我在抓救命稻草。这里的要点是,我不能显示我的代码,因为在提交前显示正确(完整)会话变量的点和提交后丢失重要字段的点之间没有代码。更糟糕的是,在同一个页面上,一个按钮会丢失会话信息,而另一个按钮则不会。两者都是“提交”类型,并使用相同的表单,使用相同的文件进行操作。信息在基于所选按钮的任何处理之前丢失(在会话开始之后)。我快发疯了。无论我使用POST还是GET方法,问题都会发生。之前关于不同按钮的评论并不完全正确。第一次提交的查看页面将丢失信息。如果我使用浏览器后退按钮并重新提交(同一页面,同一提交过程),则信息将第二次保留。需要明确的是:
    print\r($\u SESSION)
    是视图页面中的最后一行
    print\u r($\u SESSION)
    是操作文件中紧跟在
    SESSION\u start()之后的第二行。