PHP会话SID URL - url没有SID

时间:2015-07-28 19:18:13

标签: php session

我正在尝试学习如何使用会话来维护页面之间的状态。

我认为我的问题是我不知道如何正确逃脱。当我加载页面时我没有在网址的末尾获取SID,而是我得到了这个:

  

mytestsite.com/login.php?<?php echo SID;?>

我在每个页面的顶部都有 session_start()。会话初始化,因为我看到登录名出现在页面和注册和登录链接上,但是当我点击其他页面时,会话不会被维护。

使用数组($ nav)和foreach循环动态创建主站点导航。这里也 我不确定如何回应url和php SID常量 。我不认为我的语法是正确的。

//LOGIN BAR
echo "<nav id='statusBar'>";

echo "<ul>";

if(isset($_SESSION['userIn']) && $_SESSION['userIn'] != ''){

    echo "<li id='userLo'>Log Out</li>";
    echo "<li id='userLi'>User Logged In: " . $_SESSION['userIn'] . "</li>";

}   else{

    echo '<li><a href="registration.php?<?php echo SID;?>">Register</a></li>';

    echo '<li><a href="login.php?<?php echo SID;?>">Login</a></li>';

}


echo "</ul>";


echo "</nav>";

//START MAIN MENU
echo "<nav id='nav'> ";

$nav = array();

$nav['index.php?<?php echo SID;?>'] = 'Home';
$nav['public1.php?<?php echo SID;?>'] = 'Public 1';
$nav['public2.php?<?php echo SID;?>'] = 'Public 2';
$nav['members.php?<?php echo SID;?>'] = 'Members';


//CREATE UNORDERED LIST
echo '<ul>';

foreach ($nav as $key => $navValues) {
    echo "<li>";
    echo "<a href='$key'>$navValues</a>";
    echo "</li>";

}
echo '</ul>';

echo "</nav>";

1 个答案:

答案 0 :(得分:3)

回声中的所有内容'..';被解释为html。

echo '<li><a href="login.php?<?php echo SID;?>">Login</a></li>';

如果你想在字符串中使用变量,你必须像这样连接它们:

echo '<a href="login.php?' . session_name() . ' ='  . session_id() . ' ">Login</a>' ;

对于连接 php代码,请看一下: http://php.net/manual/en/language.operators.string.php 更多关于会议: http://php.net/manual/en/session.constants.php