我在header.php中创建会话,但是当我更改页面会话时会自动销毁。
session_start();
会话的<?php $_SESSION['lang'] = $_GET['herbew'];
if(isset($_SESSION['lang'])){
echo $_SESSION['lang']; } ?>
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="get">
<div class="lang">
<span class="english"><input type="hidden" name="english" value="english">
<input type="submit" name="submitsd" value="eng" ></span>
<span class="herbew"><input type="hidden" name="herbew" value="herbew">
<input type="submit" name="submit" value="her" ></span>
</div>
</form>
答案 0 :(得分:2)
必须启动会话才能访问会话变量。
在页面顶部添加:
session_start();
这将开始一个会话。它还需要在使用会话数组的每个页面上都有session_start();
。
如果您要将数据添加到会话数组中。用户按下提交按钮后,您需要执行此操作。即,
表格&gt;重定向到AddSess.php&gt;向会话添加所需的值&gt;重定向到正确的页面
即:
<form action="AddSess.php" method="POST">
<input type="text" name="test">
<input type="submit" name="submit">
</form>
和 AddSess.php
session_start();
if (isset($_POST['submit'])){
$_SESSION[] = $_POST['test'];
header ("Location: index.php");
}
以上是关于如何将数据附加到会话的一个非常基本的示例
答案 1 :(得分:0)
每次调用页面时,您都会覆盖会话变量。如果$_GET['herbew']
为空,那么$_SESSION['lang']
在分配之前检查$_GET
:
if (isset($_GET['herbew'])) {
$_SESSION['lang'] = $_GET['herbew'];
}
if(isset($_SESSION['lang'])) {
echo $_SESSION['lang'];
}