【问题标题】:session logout button bootstrap会话注销按钮引导
【发布时间】:2016-02-05 06:34:42
【问题描述】:

我已经制作了一个登录表单,其中我也有会话。这工作正常,当我登录时,您还可以看到更多按钮可见。我希望右上角的登录名切换到用户名,并在下拉菜单中得到一个红色按钮,上面写着注销。我一直在尝试用按钮进行一些编码......我在哪里<?php include 'buttons.php' ?>。但我无法得到任何工作。

您在左侧看到的注销按钮正在工作,所以问题更多,我怎样才能在下拉菜单中获得它?

header.php

<nav class="navbar navbar-default navbar-fixed-top topnav" role="navigation">
        <div class="container topnav">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand topnav" href="index.php">Logo</a>
            </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav navbar-right">
                    <li>
                        <a href="#about">About</a>
                    </li>
                    <li>
                        <a href="#services">Services</a>
                    </li>
                    <li>
                        <a href="#contact">Contact</a>
                    </li>
                    <?php include 'buttons.php' ?>

            <!-- Login Form -->
     <ul class="nav navbar-nav navbar-right">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown"><b>Login</b> <span class="caret"></span></a>
            <ul id="login-dp" class="dropdown-menu">
                <li>
                     <div class="row">
                            <div class="col-md-12">
                                Login via
                                <div class="social-buttons">
                                    <a href="#" class="btn btn-fb"><i class="fa fa-facebook"></i> Facebook</a>
                                    <a href="#" class="btn btn-tw"><i class="fa fa-twitter"></i> Twitter</a>
                                </div>
                                or
                                 <form class="form" role="form" method="post" action="" accept-charset="UTF-8" id="login-nav">
                                        <div class="form-group">
                                             <label class="sr-only" for="exampleInputEmail2">Email address</label>
                                             <input type="email" name="username" class="form-control" id="exampleInputEmail2" placeholder="Email address" required>
                                        </div>
                                        <div class="form-group">
                                             <label class="sr-only" for="exampleInputPassword2">Password</label>
                                             <input type="password" name="password" class="form-control" id="exampleInputPassword2" placeholder="Password" required>
                                             <div class="help-block text-right"><a href="">Forget the password ?</a></div>
                                        </div>
                                        <div class="form-group">
                                             <button type="submit" name="submit" class="btn btn-primary btn-block">Sign in</button>
                                        </div>
                                        <div class="checkbox">
                                             <label>
                                             <input type="checkbox"> keep me logged-in
                                             </label>
                                        </div>
                                 </form>
                            </div>
                            <div class="bottom text-center">
                                New here ? <a href="join.php"><b>Join Us</b></a>
                            </div>
                     </div>
                </li>
            </ul>
        </li>
      </ul>
           <!-- /.Login Form -->
        </div>
        <!-- /.container -->
    </nav>

profile.php

<body>
    <?php require 'header.php' ?>
<br><br><br><br><br><br><br><br><br>
    <div id="container">
        <div class="topbar">
            <h4 class="hello">Hello, <em><?php echo $_SESSION['username'];?>!</em>
            <a href="logout.php" style="font-size:18px">Logout?</a>
        <a href="test.php">test</a></h4>
        </div>

    </div>
</body>

session.php:

<?php
    if( !isset( $_SESSION ) ) session_start();
    if( !isset( $_SESSION['username'] ) ) exit( header('Location: index.php') );
?>

【问题讨论】:

  • 您是否询问如何根据用户是否登录来更改header.php 中的&lt;!-- Login Form --&gt; ... &lt;!-- /.Login Form --&gt; 部分?
  • 非常感谢您的回答。也许我有点不清楚。但是是的,这就是我要问的:)

标签: php html twitter-bootstrap


【解决方案1】:

这样的东西对你有用吗:

首先,您复制当前的登录菜单,并将其直接粘贴到其下方。然后将&lt;?php if ( user_is_logged_in() ) { ?&gt; 放在第一个上面,&lt;?php } else { ?&gt; 放在它们之间,&lt;?php } ?&gt; 放在第二个下面。然后,您将第一个编辑为您希望它在用户登录时的样子。

所以想法是这样的:

if ( user_is_logged_in() ) {
    // TODO: edit this copy
    ?> 
    LOGINFORM
    <? php
} else {
    ?>
    LOGINFORM
    <?php
}

如果您在 HTML 中使用它,则需要将其包装在 &lt;?php?&gt; 中。

这是header.php的更详细示例:

....
<?php include 'buttons.php' ?>

<?php
if ( isset( $_SESSION['username'] ) ) // user is logged in
{
?>
   <ul class="nav navbar-nav navbar-right">
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
          <b><?php echo $_SESSION['username'];?> </b> <span class="caret"></span>
        </a>
   ...
   </ul>

<?php
}
else // not logged in
{
?>
   <!-- Login Form -->
   <ul class="nav navbar-nav navbar-right">
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
          <b>Login</b> <span class="caret"></span>
        </a>
   ...
   </ul>
   <!-- /.Login Form -->
<?php
}
?>
..rest of file

【讨论】:

  • 再次感谢您的回答。似乎其中一些工作正常,但我必须下拉,所以我必须在你的代码中实现原始下拉框吗?
  • 基本思路是复制当前登录菜单,并将其直接粘贴到其下方。然后你把&lt;?php if ( user_is_logged_in() ) { ?&gt;放在第一个上面,&lt;?php } else { ?&gt;放在它们之间,&lt;?php } ?&gt;放在第二个下面。然后你编辑第一个看起来像你希望它在用户登录时的样子。所以是的,我的答案不是“复制粘贴”答案,但它是;-)
  • 它完全可以工作。非常感谢 :) 现在我可以去睡觉了,想一想我今天达到了我的目标……在一点帮助下……;)
  • 谢谢 - 我很高兴能帮上忙。晚安!
【解决方案2】:

只需在 header.php 中编写 if/else 语句:

<ul class="nav navbar-nav navbar-right">
  <li class="dropdown">

  <?php if(!empty($_SESSION['username']): ?>

    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><b>Login</b> <span class="caret"></span></a> </div> 
    ....

  <?php else: ?>
    Whatever you want to display if user is not logged in... </div>
  <?php endif; ?>

【讨论】:

  • 非常感谢您的回答。也许我只是累了,或者愚蠢...... :-/ 但是你有可能展示你将在 div 标签中放入的内容吗?我的头在跑,我应该如何用我的
  • 非常感谢您的努力。我得到了肯尼的想法。
猜你喜欢
  • 2015-12-14
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2013-06-04
相关资源
最近更新 更多