仅在php中为特定用户显示文本

时间:2017-08-11 12:17:50

标签: php

我正在尝试简单的PHP页面。我正在尝试以下方法:

<?php
include("db/db_config.php");
session_start();
$user_check=$_SESSION['login_user'];

$ses_sql = mysqli_query($bd, "SELECT username FROM cmn_users where username='$user_check'");

$row=mysqli_fetch_array($ses_sql);

$login_session=$row['username']; //get session username

echo ("<p style='text-align:left;'><h1>HEADER WILL COME UP <span style='float:right;'><a href='/admin.php'>ADMIN</a> | <a href='/logout.php'>Logout</a></h1></span></p>");

?>

我想仅为特定用户显示管理页面(链接)。如果管理员用户没有登录,就像管理员应该隐藏在loggout附近...我该怎么办?

我有会话的用户ID,但我不知道如何控制php / html中的文本。

对此的帮助会很棒。

谢谢!

2 个答案:

答案 0 :(得分:2)

  

如果会话userId为this,则显示admin

您的陈述的语义是您的确切代码:

if ($_SESSION['username'] == 'admin') {
    // output the admin stuff
}

(或者你检查用户是否是管理员。基于用户名,一些标识符,其他等等。你的问题没有指明。)

因此,您输出管理链接之前的任何内容,然后有条件地输出管理链接,然后输出其后的内容。像这样:

echo "<p style='text-align:left;'><h1>HEADER WILL COME UP <span style='float:right;'>";
if ($_SESSION['username'] == 'admin') {
    echo "<a href='/admin.php'>ADMIN</a> | ";
}
echo "<a href='/logout.php'>Logout</a></h1></span></p>";

还有许多其他方法可以构建它。也许将结果链接存储在变量中并根据需要有条件地连接它们,然后echo结果只有一次结束。

但是你这样做的概念是一样的。如果用户是管理员,则输出管理员链接。这样,如果用户不是管理员,他们就永远不会看到该链接。

注意:管理页面本身还必须实现安全性。没有什么可以阻止用户猜测链接并尝试打开该页面。不要认为问题中的方法是安全的。这只不过是用户体验。

答案 1 :(得分:0)

您需要在变量中存储html链接,并在需要时使用它们,例如

type.__new__

//假设你的html标题链接容器

object.__dir__

============================================

用于阻止管理页面上的访问

<?php
include("db/db_config.php");
session_start();
$user_check=$_SESSION['login_user'];

$ses_sql = mysqli_query($bd, "SELECT username FROM cmn_users where username='$user_check'");

$row=mysqli_fetch_array($ses_sql);
$login_session=$row['username']; //get session username
$adminLink = " <a href='/admin.php'>ADMIN</a> | ";
$logoutLink = " <a href='/logout.php'>Logout</a>";
?>