原始布局三个单独的页面,不会通过php会话。
的index.php
<?php
session_start();
error_reporting(E_ALL);
?>
<form action="session.php" method="post">
Name:<input type="text" name="Name"><br>
<INPUT type="submit">
</form>
session.php文件
<?php
session_start();
error_reporting(E_ALL);
$name = $_POST['name'];
$_SESSION["name"] == "$name";
header("Location: http://test.com/test.php");
?>
test.php的
<?php
session_start();
error_reporting(E_ALL);
echo $name;
echo "<br><br>";
echo $_SESSION["name"];
?>
此示例不会显示变量或会话
所以我把它分解到页面并运行相同的测试。
testindex.php
<?php
session_start();
error_reporting(E_ALL);
?>
<form action="testindex.php" method="post">
Name:<input type="text" name="name"><br>
<INPUT type="submit">
</form>
<?php
$name = $_POST['name'];
$_SESSION["name"] == "$name";
?>
<br><br>
<?php
echo $name;
?>
<br><br>
<?php
echo $_SESSION["name"];
?>
在此示例中,它将传递变量“name”,但会话仍然无效。
如果有人能告诉我两种代码中出现什么问题都会很棒。
我在使用会话的不同目录中有一个不同的页面。两个目录的权限相同。
我有,为了好玩,将代码加载到同一个工作目录中并得到相同的输出。
我真的在想是与代码相关但却看不到它。
谢谢
答案 0 :(得分:2)
您使用的是错误的赋值运算符。 =
是赋值运算符。 ==
是一个比较运算符。所以:
$_SESSION["name"] == "$name";
应该是:
$_SESSION["name"] = "$name";
可以简化为(引号不是必需的):
$_SESSION["name"] = $name;