我想知道是否有人能帮我。
如果我在details.php(下面的代码)页面上,有一个带有提交按钮的表单(以及其他内容)。
单击表单的提交按钮后,您将进入process_tenant.php。
问题是会话变量valid_user似乎没有附带它。我在两个页面的开头都有session_start(),会话变量肯定设置好了,在细节上永远不会被覆盖。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'
?>
...
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'];
?>
在details.php中,值admin并不等同于任何东西。它需要是一个变量、字符串或某种有效类型,否则它将被取消设置。
尝试将您的代码更改为:
$_SESSION['valid_user'] = 'admin';
只启动一次,即只使用session_start()
一次,从process_tenant.php
中删除并在完成后通知我。