2016-07-10 15 views
0

私のnavbarにログインボタン、ログイン開始モーダルがあります。 そのモーダルにログインしたユーザー名でログインボタンを変更したいと思います。ログイン後にブートストラップnavbarにログインしたユーザー名を表示するには

私はphpとmysqliの初心者です。一週間と私はここにいる。 Plsは私に私の問題についての説明された方向を与える、そうでなければ私は理解する:)

私のコードです。

の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> 

答えて

1

他のすべてが整理されている場合、通常はこのような何かがために働くことができます

<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再後

<?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 ?> 

IDを移動するあなたは、このコードに答えため

+0

感謝を理解することに問題があるなら、私に教えてください。しかし; 私は を使用しています。 <エコーPHP $ _SESSION [ 'ユーザー名']?><他のPHP:??> 前ボタン。ボタンの後<?php endif?> 私はページを更新します。私のnavbarにログインボタンはありませんが、ユーザ名を書いています。ログインボタンを見るためにどこかでセッションを破棄すべきですか? p.s. :私はどのようにelseと(:)とelseifの後ろを使っているのかわかりません。私は把握しようとしています:) –

+0

はい、あなたのセッションを破壊するか、ブラウザからクッキーを削除して、もう一度ボタンを表示する必要があります。 この代替構文の詳細については、if():[こちらを読む](http://php.net/manual/en/control-structures.alternative-syntax.php) – codisfy

+0

ユーザ名を表示する必要があることを認識しました。ボタンの中で、私は自分の答えでコードを変更しましたが、クラス/ IDを更新する必要がありますので、ボタンをクリックするとログインポップアップなどが表示されません。 – codisfy

関連する問題