繁体   English   中英

PHP会话变量丢失与表单提交页面之间

[英]php Session variable lost between pages with a form submit

我想知道是否有人可以帮助我。

如果我在页面details.php(下面的代码)上,则有一个带有提交按钮的表单(除其他外)。

单击表单的“提交”按钮后,您将进入process_tenant.php。

问题是会话变量valid_user似乎不附带它。 我在两个页面的开头都有session_start(),并且session变量肯定已设置,并且从未在details.php上覆盖

有人能告诉我为什么吗?

details.php

<?php
session_start();

    $_SESSION['valid_user'] = 'admin';

    echo $_SESSION['valid_user'];       //This prints out admin 
?>

<!DOCTYPE HTML>
<html>
<head>
        ...
    </head>

    <body>
        ...

        <form action='process_tenant.php' method='POST'>
            ...
        </form>
    </body>
</html>

process_tenant.php

<?php
   session_start();

   if (isset($_SESSION['valid_user']))
   {
       echo 'heya';          //This does not print
   }

   echo 'hi' . $_SESSION['valid_user'];    //This just prints 'hi'
?>

...

在details.php中,值admin不等于任何值。 它必须是变量或字符串或某种有效类型,否则它将不被设置。

尝试将代码更改为此:

$_SESSION['valid_user'] = 'admin';

Config.php

<?php
ob_start();
session_start();
$_SESSION['valid_user'] = admin;
?>

Details.php

<?php
include('Config.php');
?>

process_tenant.php

<?php
include('Config.php');

if (isset($_SESSION['valid_user']))
{
     echo 'heya';
}
echo 'hi' . $_SESSION['valid_user'];
?>

仅启动一次,即仅使用session_start()一次,从process_tenant.php删除,然后告诉我,一旦完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM