所以我似乎无法按照其他人的答案让这个工作。所以我的文件设置如下:
的config.php
<?php
// These variables define the connection information for your MySQL database
$username = "XXX";
$password = "XXX";
$host = "XXX";
$dbname = "XXX";
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try {
$db = new PDO("mysql:host={$host}; dbname={$dbname}; charset=utf8",
$username, $password, $options);
} catch (PDOException $ex){
die("Failed to connect to the database: " . $ex->getMessage());
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
header('Content-Type: text/html; charset=utf-8');
session_start();
?>
在我的home.php
,这是一个页面,它会在您成功登录后重定向到我希望它显示用户名,例如,&#34; Hello,{username}&#34; ..但是我在实现这个目标时遇到了一些麻烦。
home.php 我想要显示用户名:
<ul class="nav navbar-nav navbar-right">
<li class="divider-vertical"></li>
<li><a href="#">Hello, {USERNAME HERE!!}</a></li>
<li><a href="logout.php">Log Out</a></li>
</ul>
{USERNAME HERE !!}&#39;将是一些允许在那里显示用户名的PHP代码。
我不能为我的生活弄清楚如何让它显示注册人的用户名。
答案 0 :(得分:2)
:
$_SESSION["username"] = "xxx";
在你的home.php 上开始一个会话
session_start();
以及您想要输入用户名的地方:
<?php echo $_SESSION["username"]; ?>
在你的情况下,很可能是:
<li><a href="#">Hello, <?php echo $_SESSION["username"]; ?></a></li>
答案 1 :(得分:1)
扩展我对您帖子的评论:
您希望使用每页顶部的session_start()
在每个页面的顶部启动会话。
如果在另一个页面上设置变量$_SESSION['username']
,则可以调用它。
如果用户已登录,以下代码将显示登录表单,否则它将显示其他内容:
<?php session_start() ?>
<ul class="nav navbar-nav navbar-right">
<li class="divider-vertical"></li>
<?php
if(isset($_SESSION['username'])) {
echo '<li><a href="#">Hello,'. $_SESSION["username"] . '</a></li>';
echo '<li><a href="logout.php">Log Out</a></li>';
} else {
//put login form or include here.
}
?>
</ul>
我也看到了$ _GET [x]的建议,但这不是最好的选择。 $ _GET [x]用于从链接获取变量(即index.php?username = Foo),其中$ _GET ['username']给出Foo。如果您想将一些信息从一个页面发送到另一个页面,但对于用户名称不是很好,这非常有用,因为它们在整个会话期间都是持久的,并且可以编辑链接。
另外我想说的是,除非您在用户注销时取消设置用户名,否则我的示例不是很好。最好有一个boolean logged_in或类似的东西跟踪用户是否登录,然后继续检查会话是否有用户名。
答案 2 :(得分:0)
我最终用一个非常简单的解决方案解决了我自己的问题。当这种情况发生时,我既爱又恨...
我所做的就是:
<?php session_start(); ?>
<ul class="nav navbar-nav navbar-right">
<li class="divider-vertical"></li>
<li><a href="#">Hello, <?php echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'); ?></a></li>
<li><a href="logout.php">Log Out</a></li>
</ul>
所以我真正做的就是添加:
<?php session_start(); ?>
和
<?php echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'); ?>