2016-07-10 4 views
0

Ich habe Login-Button auf meiner Navbar, seine Eröffnung Login-modal. Ich möchte Login-Taste mit Benutzernamen ändern, die in diesem modalen eingeloggt ist.Wie zeige ich Benutzernamen in bootstrap navbar nach dem Anmelden

Ich bin ein Newbee in PHP und MySQL. Eine Woche und ich bin hier. Bitte geben Sie mir Anweisungen zu meinem Problem, sonst verstehe ich :)

Hier sind meine Codes;

index.php

<?php 
    include 'config/setup.php'; //database connection here 
    session_start(); 
    ?> 

<!doctype html> 
<html> 
    <head> 
      <!-- showing title dynamicly --> 
    <title><?php echo $page['title'].' | '.$site_title; ?></title> 

     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <link rel="shortcut icon" type="image/x-icon" href="img/favicon.png"> 

     <?php include "config/css.php"; ?> <!-- bootstrap css links --> 
     <?php include "config/js.php"; ?> <!-- jquery javascript links -->  
    </head>  
<body> 

<?php include (D_TEMPLATE.'/navigation.php'); ?> <!-- including navbar --> 

    <div class="container"> 
     <!-- body items will be here --> 
    </div> 

<?php include (D_TEMPLATE.'/footer.php'); ?>  <!-- including footer--> 

</body> 

</html> 

navigation.php

<?php include 'config/js.php'; ?> 

<!-- Navbar --> 
<nav class="navbar navbar-inverse"> 
    <div class="container">  
    <div class="navbar-header"><img src="img/brand.png"></div> 

     <ul class="nav navbar-nav"> 
     <?php nav_main($dbc, $pageid); ?> <!-- Im showing page links dynamicly in mysql database --> 
     </ul> 

     <form class="navbar-form navbar-left" role="search"> 
      <div class="form-group"> 
       <input type="text" class="form-control" placeholder="Search"> 
       <a href="#"> <i class="fa fa-search fa-lg" style="color:#FFFFFF;" aria-hidden="true"></i></a>    
      </div> 
     </form> 


<div class="navbar-form navbar-right"> 

<?php 

if(isset($_POST['login'])){ 
    require 'config/dbc.php'; 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $result = mysqli_query($dbc, "SELECT * FROM users WHERE username = '$username' AND password = '$password'"); 
    if(mysqli_num_rows($result) == 1){ 
     $_SESSION['username'] = $username; 
     echo $username; 
    }else{ 
     echo "problem"; 
    } 
} 

?> 
    <!-- Modal Login Button, i'm asking to erase this and write $username when user logged in, php codes is here because of this. In this situation, writing username WITH buttons, i want to erase that buttons after user logged in, it has to be write only username after login. I've tried echo this buttons after }else{ code; but any buttons not shown before login.I'm trying trying trying --> 
    <button id="login" name="login" class="btn btn-primary"><i class="fa fa-sign-in" aria-hidden="true"></i> Login</button> 

    <!-- It will be register modal button, i will work on it later --> 
    <button id="register" name="register" class="btn btn-success"><i class="fa fa-user-plus" aria-hidden="true"></i> Register</button> 
    </div>  

</nav> 


    <!-- Here is my Login Modal --> 

<section id="modal" class="modal fade"> 
    <div class="modal-body"> 

     <form method="post" action="index.php"> 

     <div class="form-group"> 
      <h4><i class="fa fa-sign-in" aria-hidden="true"></i> Login to Your Account 
      <a href="#"><span id="close" class="glyphicon glyphicon-remove-circle pull-right"></span></a></h4> 
     </div>   

      <div class="form-group"> 
       <label for="username">Username</label> 
       <input type="text" name="username" class="form-control" id="username" placeholder="Enter username"> 
      </div> 

      <div class="form-group"> 
       <label for="password">Password</label> 
       <input type="password" name="password" class="form-control" id="password" placeholder="Enter password"> 
      </div> 

      <div class="checkbox"> 
       <label><input type="checkbox">Remember Me</label> 
       <button class="btn btn-primary pull-right" data-dismiss="modal">Close</button> 
       <button type="submit" name="login" class="btn btn-danger pull-right"><i class="fa fa-sign-in" aria-hidden="true"></i> Login</button><br><br> 
       <a href="#"><label>Forgot password?</label></a> 
      </div> 

     </form> 

    </div> 
</section> 


<!-- It will be my Register Modal --> 
<section id="modal_register" class="modal fade"> 
    <div class="modal-body"> 

     <form action="" method="post" role="form"> 

      Register Here 

      <button id="submit" class="btn btn-danger">Login</button> 

     </form> 

    </div> 
</section> 

Antwort

1

wenn alles andere in der Regel so etwas aussortiert wird für Sie arbeiten

<button id="login" name="login" class="btn btn-primary"><i class="fa fa-sign-in" aria-hidden="true"></i> 
    <?php if (isset($_SESSION['username'])) : ?> 
     <?php echo $_SESSION['username'] ?> 
    <?php else: ?> 
     Login 
    <?php endif ?> 

</button> 

OR nach re die ID bewegen

<?php if (isset($_SESSION['username'])) : ?> 
     <button class="btn btn-primary"><i class="fa fa-sign-in" aria-hidden="true"></i> <?php echo $_SESSION['username'] ?> </button> 
    <?php else: ?> 
     <button id="login" name="login" class="btn btn-primary"><i class="fa fa-sign-in" aria-hidden="true"></i> Login</button> 
    <?php endif ?> 

Lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben, das Verständnis dieser Code

+0

Danke für Antwort. aber; Ich verwende vor Taste. nach der Schaltfläche verwende ich Wenn ich die Seite aktualisiere; Es gibt keine Login-Schaltfläche in meiner Navigationsleiste, aber ich schreibe den Benutzernamen. Sollte ich Session irgendwo zerstören, um Login-Button für eingeloggt zu sehen? p.s. : Ich verstehe nicht, wie Sie mit anderen und (:) dies und nach elseif. Ich versuche herauszufinden :) –

+0

Ja, Sie müssen Ihre Sitzung zerstören oder Cookies von Ihrem Browser entfernen, um die Schaltfläche erneut zu sehen. und mehr über diese alternative Syntax wissen if(): [lesen Sie hier] (http://php.net/manual/en/control-structures.alternative-syntax.php) – codisfy

+0

Erkenntnis, dass Sie den Benutzernamen anzeigen müssen Innerhalb der Schaltfläche habe ich den Code in meiner Antwort geändert, aber jetzt müssen Sie auch Ihre Klassen/IDs aktualisieren, so dass beim Klicken auf die Schaltfläche kein Login-Popup etc. angezeigt wird. – codisfy