首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP会话SID URL - url没有SID

PHP会话SID URL - url没有SID
EN

Stack Overflow用户
提问于 2015-07-28 19:18:13
回答 1查看 1.4K关注 0票数 0

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

我想我的问题是我不知道如何正确地逃脱。当我在url的末尾加载im没有得到SID的页面时,我得到的是:

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

我在每一页的顶部都有session_start()。当我看到登录名出现在页面、注册表和登录链接上时,会话初始化工作,但是当我单击到另一个页面时,会话将无法维护。

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

代码语言:javascript
复制
//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>";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-28 19:32:05

下面所有回显‘.’;被解释为html。

代码语言:javascript
复制
echo '<li><a href="login.php?<?php echo SID;?>">Login</a></li>';

如果要在字符串中使用变量,则必须按如下方式将它们连接起来:

代码语言:javascript
复制
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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31685246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档