维护PHP会话变量

时间:2015-12-04 07:10:40

标签: php session

我想在登录后保留3个$ _Session变量。我的登录模式提交到我的index.php页面,这似乎是我可以访问用户登录时设置的会话变量的唯一地方。如何将这些变量传递给用户访问的下一页?我知道我可以在表单中使用隐藏的输入但是如果使用菜单浏览网站怎么办?我想将一个用户会话变量存储在一个会话包含文件中,但我有同样的问题从页面到页面传递变量的值。

-Mike

4 个答案:

答案 0 :(得分:3)

档案a.php:

<?php
session_start();

$_SESSION['saveme'] = 'from file A';

?>

文件b.php:

<?php
session_start();

echo $_SESSION['saveme']; // if you visited a.php previously, you will see "from file A"
?>

在任何文件中设置会话变量都可以在其他地方使用。

答案 1 :(得分:2)

您可以在一个页面上存储会话中的值(如您所述,在您的案例中为索引),然后您可以在该页面上启动会话时在任何页面上获取这些值。会话存储这些值直到同一会话存活。

在会话中设置值的代码:

<?php
// Start the session
session_start();
?>
    <?php
    // Set session variables
    $_SESSION["xyz"] = "xyz";
    $_SESSION["abc"] = "abc";
    echo "Session variables are set.";
    ?>

获取会话值的代码:

<?php
// Echo session variables that were set on previous page
echo "value of xyz is " . $_SESSION["xyz"] . ".<br>";
echo "value of abc is " . $_SESSION["abc"] . ".";
?> 

答案 2 :(得分:0)

你的模态的形式

<form action="index.php" method="post">
Username <input type="text" name="username" />
Password <input type="password" name="password" />
</form> 

然后你在index.php

中抓住它
<?php
session_start();

if (isset($_POST['username']) && isset($_POST['password'])) {
    // Check if user exists and password matches

    $_SESSION['username'] = $_POST['username'];
    $_SESSION['logintime'] = time();
    $_SESSION['something'] = 'else';
}

在任何其他页面中,您可以使用

之类的值
<?php
session_start();

if (isset($_SESSION['username'])) {
    echo 'Welcome ' . $_SESSION['username'];
}

答案 3 :(得分:0)

所有提供答案的人都谢谢你。这个被忽视的细节都在我身上,虽然我已经离开开发游戏一段时间了,但我应该知道的更好。

默认情况下,我的托管服务使所有文件权限只读/写...访问我更改为读/写/执行的会话变量并成功。

再次感谢!