PHP会话不工作
原始布局三个单独的页面,无法通过php会话 index.phpPHP会话不工作,php,session,Php,Session,原始布局三个单独的页面,无法通过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);
?>
<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”,但会话仍不工作
如果有人能告诉我这两种代码中出现了什么问题,那就太好了
我在一个不同的目录中有一个不同的页面,使用sessions非常好。两个目录上的权限相同
为了好玩,我在同一个工作目录中加载了代码,并得到了相同的输出
我真的认为是代码相关,但看不到它
谢谢您使用了错误的赋值运算符<代码>=是赋值运算符<代码>=是一个比较运算符。因此:
$_SESSION["name"] == "$name";
应该是:
$_SESSION["name"] = "$name";
可简化为(不需要引号):
$\u会话[“name”]=“name”代码>非$\u会话[“名称”]=“名称”代码>。使用=
可以将$\u会话[“名称”]
与“$name”
进行比较,使用=
设置$\u会话[“名称”]
输入名称的值区分大小写name=“name”
与name=“name”
不同,您需要在php.ini级别打开错误报告。尤其是在调试/开发时。在执行错误报告()调用之前,在编译阶段就可以发出大量php错误/警告。@肖恩:这是cargo cult编程,但是$var
v.s.“$var”
不是“错的”。@MarcB我的观点是==
vs=
,而不是“$name”
vs$name
是否应该是$\u会话[“name”]=$name代码>你是对的。我一定看了50多次,看到很多文章没有注意到“==”我倾向于同意使用$\u SESSION[“name”]=$name
在一个引用的$name
@JackWilliams Plus上,不需要额外的两次击键。如果你算上按下SHIFT键,实际上是“4”。每一个动作都很重要
$_SESSION["name"] = $name;