如何在PHP中存储会话?

时间:2014-07-26 17:37:50

标签: php wordpress

我在header.php中创建会话,但是当我更改页面会话时会自动销毁。

会话启动此代码我位于header.php

的顶部
session_start();
会话的

php代码

<?php $_SESSION['lang'] = $_GET['herbew'];
if(isset($_SESSION['lang'])){  
echo $_SESSION['lang'];   } ?>

HTML,我可以选择用户更改语言

<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>

2 个答案:

答案 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");
}

以上是关于如何将数据附加到会话的一个非常基本的示例

Add variable in session variable in PHP

答案 1 :(得分:0)

每次调用页面时,您都会覆盖会话变量。如果$_GET['herbew']为空,那么$_SESSION['lang']

也是如此

在分配之前检查$_GET

if (isset($_GET['herbew'])) {
    $_SESSION['lang'] = $_GET['herbew'];
}
if(isset($_SESSION['lang'])) {  
    echo $_SESSION['lang'];
}