Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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_Session - Fatal编程技术网

PHP会话不工作

PHP会话不工作,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会话

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”,但会话仍不工作

如果有人能告诉我这两种代码中出现了什么问题,那就太好了

我在一个不同的目录中有一个不同的页面,使用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;