繁体   English   中英

当用户登录HTML时更改导航菜单

Change navigation menu when user is logged in HTML

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个HTML网站,其中使用PHP实现了登录和注册系统。

如果没有用户登录,则每个页面的导航项“ Contul meu”都需要将我发送到“ gotosigning.html”页面。 但是,当用户登录后,我希望每个页面上的菜单项“ Contul meu”将我发送到“ account.html”页面。

例如,在index.html页面中的一些菜单项:

<li class="active"><a href="index.html">Acasă</a></li>
<li><a href="login.html">login</a></li>
<li><a href="signin.html">sign in</a></li>
<li><a href="gotosigning.html">Contul meu</a></li>

gotosigning.html页面重定向到一个页面,您可以在其中选择要登录还是登录,然后根据此处的选择进入login.html或signin.html。

这是一个基本示例,当用户尚未登录时,但在登录时,最后一项应在所有内容中均变为<li><a href="account.html">Contul meu</a></li>页面。

login.php ,这是在login.html和signup.html页面中实现的

  <?php

 $link = new mysqli("localhost", "root", "", "graphicdesign");
if($link->connect_error){
   die("ERROR: Nu s-a putut realiza conexiunea la baza de date " .$link->connect_error);
}

session_start();

$email =$_POST['email'];
$password=$_POST['pass'];

$result = $link->query("SELECT email_cl, parola_cl FROM clienti WHERE email_cl= '".$email."' AND parola_cl= '".$password."'");

if($result->num_rows == 0 ) { 
    echo "Datele nu corespund!";
}
else { 
        $_SESSION['logged in']=true;
        $_SESSION['email']=$email;

        echo "Login cu succes!";
        echo "<script>setTimeout(\"location.href = '../account.html';\",1500);</script>";
}

?>

如何使服务器始终知道用户已登录?

我如何告诉HTML页面何时根据登录状态更新导航?

我唯一想到的是复制所有页面(但是它们太多了),然后实现一些代码来测试用户是否登录到服务器,可以使用正确的菜单选择该选项...但是没有似乎还好...

谢谢!

2 个回复

首先,您需要将所有页面从.html重命名为.php 除此之外,这两个扩展名之间完全没有区别:如果页面以.php ,则PHP处理器知道可以解释在<?php?>标记之间找到的任何PHP代码。 如果页面以.html结尾,则不会处理PHP。 HTML将继续完全相同。 立即尝试-创建一个包含一些HTML的测试页,并以.php扩展名命名。 您将看到它的工作原理与以.html结尾的代码完全一样

为了在用户登录后更改导航项,您可以参考他们登录时设置的$ _SESSION变量。 注意:请勿在会话变量名中使用空格-下划线字符(例如, logged_in )可以,虽然。

例:

<?php
    if ($_SESSION['logged_in'] == true){
        $out = '<li><a href="file_if_logged_in.php">Contul meu</a></li>';
    }else{
        $out = '<li><a href="file_if_NOT_logged_in.php">Contul meu</a></li>';
    }
    echo $out;
?>

而且,最重要的是-确保您放置session_start(); 在每个PHP文件的顶部。

作为附带说明,我个人希望在PHP文件顶部具有一个<?php ?>部分,其中包含尽可能多的PHP代码。 例如,我将上面的代码放在文件的顶部–在任何HTML之前–在<!DOCTYPE html> 然后,我有了所有HTML代码,并且-在它所属的位置-我回显了PHP变量,如下所示:

<li class="active"><a href="index.html">Acasă</a></li>
<li><a href="login.html">login</a></li>
<?php echo $out ?>
<li><a href="signin.html">sign in</a></li>

(我故意将您的Contul meu菜单菜单项用于DEMO,以便您可以在其上方和下方看到内容。在您的示例中,它是最后一个菜单项,出于演示目的,它并不清楚。)

您可以根据条件显示菜单。 在每个登录/注销和登录页面的顶部放置一个使用session的检查,如下所示:-

注意:您可以在每个文件的顶部进行启动session

<?php 
 session_start();
if(isset($_SESSION['email']) && !empty($_SESSION['email'])){
?>
      <a href="logout.php">Logout</a>
<?php
 }else{
?>
    <li class="active"><a href="index.html">Acasă</a></li>
    <li><a href="login.html">login</a></li>
    <li><a href="signin.html">sign in</a></li>
    <li><a href="account.html">Contul meu</a></li>
<?php } ?>
1 当用户尚未登录导航菜单时如何使用会话变量

如果用户是管理员或主持人或普通用户,我试图在导航菜单中显示不同的内容,但是由于用户未登录,我无法使用会话变量,因此我不知道该怎么做在呢 我尝试通过使用会话变量来执行此操作,但随后意识到用户未登录。我假设我必须将其包含在php部分中,以便此功能能够正常工作,因为我想在其中拆分内容。导航菜单 ...

2018-12-26 09:13:51 0 21   php
3 当用户登录和注销时反应导航过程反应本机

我有两个底部选项卡导航器。 A、B。 他们都有登录,注销。 不要问我为什么他们两个都有。 当用户登录和注销时,我想重置所有堆栈并转到堆栈 A。 当我在堆栈 A 中登录时,没有问题。 但是当我登录堆栈 B 时它崩溃了。 因为在 B 中没有 A 路线名称。 我该如何解决这个问题? 谢谢。 ...

4 仅当用户登录时才反应本机导航错误

我可以选择浏览未登录或已登录的欢迎屏幕(并显示更多功能)。 我以为我的导航配置正确,但我猜不是。 错误“带有效载荷的操作 NAVIGATE...没有被任何导航器处理”让我相信这是因为我正在使用一个嵌套在另一个导航器中的导航器,但奇怪的是我根本没有收到这个错误,如果用户未登录。只有在登录时才会发生。 ...

5 当用户未登录时,AngularJs会阻止ulr导航

用户登录后,我必须允许用户访问应用程序 并且如果用户未登录,则用户仅通过URL重定向就不应能够访问该应用程序 在上述情况下,如果用户未登录,则应重定向到登录页面 我以下面的方式尝试 在这里,我正在登录成功回调中执行$rootScope.tempObj = true 但 ...

6 仅当用户登录角度6时如何显示导航栏

如果用户已登录,我在签入时遇到问题。 导航栏现在的行为是隐藏,因为几分钟后无法获取用户数据。 第一次运行完美,但几分钟后消失。 也许我实现了可观察到的错误。 有人可以帮我吗? 谢谢! navbar.component.ts 认证服务 navbar.html ...

7 当用户登录网站时如何显示不同的导航栏

我正在为我的项目创建一个食谱,并试图在用户登录网站时切换 nabvar,以便它显示“食谱、添加食谱、注销”并隐藏“登录和注册链接”。 我正在关注这个 youtube 视频https://www.youtube.com/watch?v=vVx1737auSE但是当我登录该网站时,导航没有改变。 导航 ...

8 用户登录时在导航菜单中更改用户名

我有一个导航菜单,在它的标题中有一个 textView,当他/她登录到应用程序(如 Gmail 应用程序)时显示用户名。 不幸的是,当用户登录 LogInActivity 并返回 MainActivity 时,textView 不会更改,您必须重新启动应用程序才能更改文本。 (我用sharedP ...

9 当用户点击HTML元素时,如何更改HTML元素的颜色?

我的问题很简单,我无法相信iOS 4及更高版本没有基于HTML / CSS的解决方案。 我有图像网格,每个图像都有一行灰色文字。 文本以顶部和底部的线条为界。 当用户轻击元素(图像或字幕)时,文本和线条应该将颜色更改为白色,并在他再次抬起手指时重置颜色。 如果在图像顶部出现一条额 ...

10 当用户登录时更改连接字符串

我正在编写一个ASP.NET MVC Core 2.1应用程序,我将拥有几个不同的数据库。 在用户登录时,我希望他们使用他们指定的数据库。 我有一个主数据库处理个人帐户登录,不会改变。 然后我有用户数据库,目前只有一个,但在几个月的时间内可能有10个 - 例如全部相同。 在我的“ ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM