如何从其他页面访问页面上设置的会话变量

时间:2013-05-09 21:27:29

标签: php session-variables

我已经尝试过寻找有关我正在尝试做的事情的信息,但结果不是我需要完成的事情。我很确定我的问题有一个答案,但我不知道如何用正确的措辞来搜索它。无论如何我要做的是:在这里我创建了一个会话变量

<?php
// Session started
session_start();


// Connecting to the database
$host = "localhost";
$username = "username";
$password = "password";
$db_name = "potholio";
$tbl_name = "userTbl";

$conn = mysql_connect( $host, $username, $password );
if (! $conn )
{
    die('Could not connect: ' . mysql_error());
}

mysql_select_db( $db_name );

// Submitting query and retrieving result)
$myusername = $_GET['myusername'];
$mypassword = $_GET['mypassword'];

$sql = "SELECT * FROM $tbl_name WHERE usrName='". $myusername ."' and pwd='". $mypassword ."'";
$result = mysql_query( $sql );

// Checking results
$count = mysql_num_rows( $result );

// Directing user based on result
if ( $count == 1 )
{

现在,我已经实际设置了我想稍后访问的会话变量。

    $userID = mysql_fetch_assoc( $result );
    $_SESSION['user'] = $userID['msgID'];

    header('Location: http://potholio.csproject.org/map.html');
}
else
{
    echo "<script>alert('Incorrect username or password');</script>";
    header('Location: http://potholio.csproject.org/');
}

// Close Database Connection
mysql_close();
?>

现在我正在尝试使用以下代码访问我在另一个名为map.html的文件中设置的会话变量:

<?php
// Initiate session 
session_start();

// Store session data
echo $_SESSION['user'];

?>

问题在于当我回显看它是否被设置时,回声实际上并没有返回任何东西,所以我不确定是什么,因为我知道变量是在另一个文件中设置的,是login.php。任何帮助都可能会很棒。我是Sessions和Session变量的完全初学者。

3 个答案:

答案 0 :(得分:1)

您正在使用localhost进行连接,但header redirectheader('Location: http://potholio.csproject.org/map.html'); 您似乎从另一个远程主机重定向到map.html,那么您认为它如何保持您的localhost会话?

答案 1 :(得分:0)

好的,我只知道我的问题是什么。我发现我所拥有的所有代码确实是正确的,除了我如何重定向页面之外,我没有任何问题。

谢谢@Robert Rozas。

我的问题实际上是一个非常愚蠢而且容易解决的问题。我的map.html文件上的PHP脚本从未被执行过,因为它是一个HTML文件而不是PHP文件。一旦我意识到并重命名了文件,所以它有一个.php文件扩展名,所有内容都正确运行。对不起麻烦的家伙们,我应该已经看到了。

答案 2 :(得分:-1)

使用var_dump($_SESSION['user'])代替echo $_SESSION['user']以获得更好的详细输出。