我正在尝试简单的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中的文本。
对此的帮助会很棒。
谢谢!
答案 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>";
?>