0

とにかく、これは私のナビゲーションバーであると思われるheaders.php用のものです。メンバーとしてユーザーでログインすると、ヘッダー全体が出てこないという問題があります。しかし、管理者でログインすると、ナビゲーションが「魔法のように」出てきます!

    <?php
        if(!isset($_SESSION['sRole'])){
        ?>
            <div id="header">
            <div id="fb-root"></div>
                 <div id ="inthebox">
                        <a href="login.php" class="link"><b>LOGIN</b></a>|
                        <a href="register.php" class="link"><b>REGISTER</b></a>
                </div>  
                        <div id ="outthebox">
                            <a href="index.php" class="link">HOME</a>|
                            <a href="bookshelf.php" class="link">BOOKSHELF</a>|
                            <a href="shoppingcart.php" class="link">SHOPPING CART</a>|
                            <a href="about.php" class="link">ABOUT</a>|
                                                <a href="logout.php" class="link">ABOUT</a>|

                        </div>




            </div>

        <?php
        }
        else{

                if($_SESSION['sRole'] == "member"){
        ?>
        <div id="header">
                                <div id ="inthebox">
                        <a href="logout.php" class="link"><b>LOGOUT</b></a>
                                        </div>

                                     <div id ="outthebox">
                            <a href="index.php" class="link">HOME</a>|
                            <a href="bookshelf.php" class="link">BOOKSHELF</a>|
                            <a href="shoppingcart.php" class="link">SHOPPING CART</a>|
                            <a href="about.php" class="link">ABOUT</a>|
                                                <a href="updateProfile.php" class="link">PROFILE</a>
                            <?php
                                echo("You have Login as :" . $_SESSION['sUsername']);
                            ?>
                        </div> 





            </div>
        <?php
            }else{
                if($_SESSION['sRole']=="admin"){
                    ?>
            <div id="header">
                    <div id ="inthebox">
                    <a href="logout.php" class="link"><b>LOGOUT</b></a>
                        </div>
                    <div id="outthebox">
                            <a href="index.php" class="link">HOME</a>|
                            <a href="bookshelf.php" class="link">BOOKSHELF</a>|
                            <a href="shoppingcart.php" class="link">SHOPPING CART</a>|
                            <a href="about.php" class="link">ABOUT</a>|
                                                <a href="account.php" class="link">Manage Account</a>|
                                                <a href="managebook.php" class="link">Manage Books</a>|
                                                <a href="manageOrder.php" class="link">Manage Orders</a>|
                            <?php
                                echo("You have Login as :" . $_SESSION['sUsername']);
                            ?>
                        </div> 




            </div>
                    <?php
                }
            }
        }   
        ?>

これは私の doLogin.php ページです。おそらく、ここにいる誰かがこれを解決するのに役立つかもしれません。ID、ユーザー名、姓名をセッションに保存します。内部にはalrがあります。私が入ったときのウェブサイトはエラーではありません。HTMLコードエラーなどはありません。表示されないだけです。ただし、ナビゲーション リンクの下の単語は引き続き表示されます。

    <?php
     //connect to database
    include ('dbfunction.php'); 
    if (!isset($_POST['Login'])) {
        if (isset($_POST['username'])) {
            //retrieve form data
            $username = $_POST['username'];
            $password = $_POST['password'];

            $query = "SELECT * FROM users WHERE username='" . $username . "'AND password = '" . $password . "'";
            $result = mysql_query($query) or die('The error :' . mysql_error());
            $num_rows =mysql_num_rows($result);

            if($num_rows == 0){
                 header('Location:login.php');
                exit();
                }
            //if record is found, store id and username into session
            else{
                $row = mysql_fetch_array($result);
                $_SESSION['sUsername'] = $row['username'];
                $_SESSION['sRole'] = $row['role'];
                $_SESSION['sFirst_name'] = $row['first_name'];
                $_SESSION['sLast_name'] = $row['last_name'];

                header('location:successful_login.php');//redirect to this page
                exit();
            } 
        }
            else { 


            }
    } else {
            header('Location:successful_login.php');
            exit();
    }
    mysql_close();
    ?>
4

2 に答える 2

0

ここでの問題は、条件を使用しているが、その中にステートメントを} else {ネストしていることだと思います。if実際、いくつかの閉じ括弧が壊れていたようです。改訂されたコードは次のとおりです。

<?php if(!isset($_SESSION['sRole'])){ ?>
    <div id="header">
    <div id="fb-root"></div>
         <div id ="inthebox">
                <a href="login.php" class="link"><b>LOGIN</b></a>|
                <a href="register.php" class="link"><b>REGISTER</b></a>
        </div>  
                <div id ="outthebox">
                    <a href="index.php" class="link">HOME</a>|
                    <a href="bookshelf.php" class="link">BOOKSHELF</a>|
                    <a href="shoppingcart.php" class="link">SHOPPING CART</a>|
                    <a href="about.php" class="link">ABOUT</a>|
                                        <a href="logout.php" class="link">ABOUT</a>|

                </div>




    </div>

<?php } else if($_SESSION['sRole'] == "member") { ?>

<div id="header">
                        <div id ="inthebox">
                <a href="logout.php" class="link"><b>LOGOUT</b></a>
                                </div>

                             <div id ="outthebox">
                    <a href="index.php" class="link">HOME</a>|
                    <a href="bookshelf.php" class="link">BOOKSHELF</a>|
                    <a href="shoppingcart.php" class="link">SHOPPING CART</a>|
                    <a href="about.php" class="link">ABOUT</a>|
                                        <a href="updateProfile.php" class="link">PROFILE</a>
                    <?php
                        echo("You have Login as :" . $_SESSION['sUsername']);
                    ?>
                </div> 





    </div>

<?php }else if($_SESSION['sRole']=="admin"){ ?>

    <div id="header">
            <div id ="inthebox">
            <a href="logout.php" class="link"><b>LOGOUT</b></a>
                </div>
            <div id="outthebox">
                    <a href="index.php" class="link">HOME</a>|
                    <a href="bookshelf.php" class="link">BOOKSHELF</a>|
                    <a href="shoppingcart.php" class="link">SHOPPING CART</a>|
                    <a href="about.php" class="link">ABOUT</a>|
                                        <a href="account.php" class="link">Manage Account</a>|
                                        <a href="managebook.php" class="link">Manage Books</a>|
                                        <a href="manageOrder.php" class="link">Manage Orders</a>|
                    <?php
                        echo("You have Login as :" . $_SESSION['sUsername']);
                    ?>
                </div> 




    </div>
            <?php
}  
于 2013-07-23T02:29:23.797 に答える