![](/img/trans.png)
[英]How can i display the username in all the following pages after successful login using html php?
[英]How can I display a user's username after successful php login?
因此,我似乎無法按照別人的回答來使它起作用。 所以我的文件設置如下:
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
,該頁面將是您成功登錄后將您重定向到的頁面,我希望它顯示用戶名,例如“ Hello,{username}” ...但是,實現此目標有些麻煩。
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 !!}”是一些PHP代碼,可在其中顯示用戶名。
我只是一輩子都無法弄清楚如何顯示注冊人的用戶名。
在您的config.php頁面上:
$_SESSION["username"] = "xxx";
在您的home.php上開始會話
session_start();
以及您想放置用戶名的位置:
<?php echo $_SESSION["username"]; ?>
在您的情況下,很可能是:
<li><a href="#">Hello, <?php echo $_SESSION["username"]; ?></a></li>
要擴展我對您的帖子的評論:您想使用每頁頂部的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。 如果要將某些信息從一頁發送到另一頁,但是對用戶名不利,則這很有用,因為用戶名在整個會話中都是持久的,並且可以編輯鏈接。
我還要說,除非您在用戶注銷時取消設置用戶名,否則我的示例不是很好。 最好使用布爾值login_in或類似的布爾值來跟蹤用戶是否已登錄,然后繼續檢查會話是否具有用戶名。
最后,我用一個非常簡單的解決方案解決了自己的問題。 當這件事發生時,我既愛又恨。
我所做的就是:
<?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'); ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.