通过Dreamweaver模板在导航栏中显示活动用户名


Showing Active Username in Navbar Across the Website with PHP via A Dreamweaver Template

问题是能够显示当前用户名,而有人登录。我一直在尝试我在网上找到的一些解决方案,但都不能让它们起作用。我将粘贴几个重要的文件。所有的网页文件都是PHP的,它们是由Dreamweaver CC模板文件支持的。我试图让活跃的用户名显示在导航栏通过在模板文件中的代码。

在浏览器中报告的http://localhost/WEB182/index.php错误是:解析错误:语法错误,unexpected " (T_ENCAPSED_AND_WHITESPACE), expect identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:'xampp'htdocs'WEB182'index.php on line 91

index.php文件的第91行是:echo "Signed in as: '。$ _SESSION[的user_name]";}

当然,那不一定是实际的问题,而是反映在浏览器产生错误消息的症状。

这是Dreamweaver模板文件,我试图实现可视用户名:

<!doctype html>
    <html>
<head>
        <meta charset="UTF-8">
        <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge"> -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="icon" href="../img/R-icon.png">
        <!-- TemplateBeginEditable name="EditRegion3" -->
        <title>Rob's Address Book</title>
        <!-- TemplateEndEditable --> 
        <link href="../css/bootstrap.min.css" rel="stylesheet">
        <link href="../css/addressbook.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Biryani:300,400,600,700,800,900" rel="stylesheet"> 
        <!-- <link href="https://fonts.googleapis.com/css?family=Modak" rel="stylesheet"> --> 
        <!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> --> 
<meta name="description" content="Rob's first database driven address book.">
<meta property="og:image" content="http://webtech-ftcc.org/users/hestonw0355/WEB182/img/c-01.png"/>
<meta property="og:description" content="This is where I am learning to input and retrieve data from a database with a website!"/>
<meta property="og:title" content="Rob's Address Book"/>
            <style>
            @font-face { font-family: Abbess; src: url('../fonts/Abbess.ttf'); } 
            f12 {font-family: 'Abbess', cursive;}
            @font-face { font-family: BenguiatStd-Book; src: url('../fonts/BenguiatStd-Book.ttf'); }
            b1 {font-family: 'BenguiatStd-Book', serif;}
            @font-face { font-family: BenguiatStd-BookItalic; src: url('../fonts/BenguiatStd-BookItalic.ttf'); }
            b2 {font-family: 'BenguiatStd-BookItalic', serif;}
            @font-face { font-family: BenguiatGothicStd-Bold; src: url('../fonts/BenguiatStd-Bold.ttf'); }
            b3 {font-family: 'BenguiatGothicStd-Bold', serif;}
            @font-face { font-family: BenguiatGothicStd-BoldObl; src: url('../fonts/BenguiatStd-BoldItalic.ttf'); }
            b4 {font-family: 'BenguiatGothicStd-BoldObl', serif;}
            y1 {font-family: 'Biryani', sans-serif; font-weight: 300;  font-style: light;}
            y2 {font-family: 'Biryani', sans-serif; font-weight: 400;  font-style: regular;}
            y3 {font-family: 'Biryani', sans-serif; font-weight: 600;  font-style: semi-bold;}
            y4 {font-family: 'Biryani', sans-serif; font-weight: 700;  font-style: bold;}
            y5 {font-family: 'Biryani', sans-serif; font-weight: 800;  font-style: extra-bold;}
            y6 {font-family: 'Biryani', sans-serif; font-weight: 900;  font-style: black;} 
            </style>
<!-- TemplateBeginEditable name="EditRegion1" -->  
<!-- TemplateEndEditable -->
</head>
<body style="background-color: #666666;">
       <div class="container"> 
            <div class="jumbotron" style="border-radius: 0px;">
                <table width="100%" border="0" cellspacing="0" cellpadding="0" style="max-height: 200px; min-height: 150px; vert-align: middle;">
                    <tbody>
                        <tr style="">
                            <td width="20%">&nbsp;</td>
                            <td width="74%"><f12 style="font-size: 36pt; color: #f1c741; line-height: 90%;"> <br>Rob's Address Book</f12></td>
                            <td width="6%">&nbsp;</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
<div class="container">
                <nav class="navbar navbar-inverse">
                  <div class="container-fluid">
                    <div class="navbar-header">
                      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                      </button>
                      <a class="navbar-brand" href="index.php"><y6>HOME</y6></a> 
                    </div>
                    <div class="collapse navbar-collapse" id="myNavbar">
                      <ul class="nav navbar-nav">
                        <li class="dropdown">
                          <a class="dropdown-toggle" data-toggle="dropdown" href="#"><y4>Address Book</y4><span class="caret"></span></a>
                          <ul class="dropdown-menu">
                            <li><a href="../index-adbk.php"><y3>Enter Addresses</y3></a></li> 
                            <li><a href="view-adbk.php"><y3>View Address Book</y3></a></li>
                            <li><a href="#"><y3>Link 1-C</y3></a></li>
                            <li><a href="#"><y3>Link 1-D</y3></a></li>
                            <li><a href="#"><y3>Link 1-E</y3></a></li> 
                          </ul>
                        </li>
                        <li><a href="index-adbk.php"><span class="glyphicon glyphicon-list"></span><y4> Enter Addresses</y5></a></li>
                        <li><a href="view-adbk.php"><span class="glyphicon glyphicon-list-alt"></span><y4> View All Records</y5></a></li> 
                       </ul>
                    <ul class="nav navbar-nav navbar-right">
                        **<li><?php if(isset($_SESSION["usr_id"])){ 
                            echo "Signed in as: '. $_SESSION['user_name']"; } 
                            else { echo 'Not Logged In!'; } ?></li>**
                        <li><?php if(isset($_SESSION['usr_id'])){ 
                            <a href="logout.php"><span class="glyphicon glyphicon-log-out"></span><b3> Logout</b3></a></li>
                        <li><?php }else { ?>
                            <a href="login.php"><span class="glyphicon glyphicon-log-in"></span><b3> Login</b3></a></li>
                        <li><a href="register.php"><span class="glyphicon glyphicon-user"></span><b3> Register</b3></a> } ?></li>
                    </ul>
                    </div>
                  </div>
                </nav>
    <div class="row"><!-- Begin Row -->
            <div class="col-lg-7 col-md-9 col-sm-12 left-column "><!-- Begin main content (left) column -->
            <!-- TemplateBeginEditable name="EditRegion2" --> 
                <div class="main-content"><!-- Begin main content div -->
                    <br><br><br><br><br><br><br><br><br><br><br><br>
                </div><!-- End main content div -->
                <!-- TemplateEndEditable -->
            </div><!-- End main content column -->
            <div class="col-md-5 col-sm-9 right-column" style="height: cover;"><!-- Begin Right Column --> 
                    <br><br><br>
            </div><!-- End Right Column --> 
    </div><!-- End Row -->
</div><!-- End Container -->
<div class="container"> 
    <div class="footer"><!-- Begin Footer -->
            <b1 style="font-size: 12pt; color: white;">Copyright &copy; Sungraffix - All rights reserved - Published since 2016 - Winston-Salem, NC, USA - Contact: 
            <a href="mailto:rob@sungraffix.net">rob@sungraffix.net</a></b1>
    </div><!-- End Footer -->
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> -->                
    </body>
    </html>

这是index.php文件的可编辑部分。其余部分与上面的模板文件相同:

<!-- InstanceBeginEditable name="EditRegion2" --> 
<div class="main-content" style="padding-left: 20px;"><!-- Begin main content div -->
    <br><br>
    <p><b3 style="font-size: 16pt;">Welcome to the website for Robs Address Book!<br>
    If you would like to access the address book,<br>please login to begin.</b3></p>
    <p style="text-align: center;"><img src="img/c-01.png" width="227" height="350" alt=""/><br><br></p>
</div>
<!-- End main content div -->
<!-- InstanceEndEditable -->

这是login.php文件的可编辑部分:

        <!-- InstanceBeginEditable name="EditRegion2" --> 

        <div class="form-reg"><!-- Begin div to contain form -->
        <table width="50%" style="padding-left: 20px;">
            <tr>
                <td style="">
    <form role="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="loginform">
            <fieldset>
                <legend class="legend-01"><b3>Please Login</b3></legend>
                </td>
            </tr>
            <tr>
                <td>
                <div style="margin-top: 0px; margin-bottom: 5px;">
                    <label for="name"><b1>Email</b1></label>
                    <input type="text" name="email" placeholder="Enter Your Email" required class="form-control" />
                </div>
                </td>
             </tr>
             <tr>
                <td>   
                <div style="margin-top: 10px; margin-bottom: 5px;">
                    <label for="name"><b1>Password</b1></label>
                    <input type="password" name="password" placeholder="Your Password" required class="form-control" />
                </div>
                </td>
             </tr>
                <td>
                <div style="margin-top: 10px; margin-bottom: 5px;">
                    <input type="submit" name="login" value="Login" class="btn btn-primary" />
                </div>
            </fieldset>
        </form>
                </td>
             </tr>
             <tr><td>
                <div style="margin-top: 10px; margin-bottom: 5px;">    
                    <b1>New User? <a href="register.php">Sign Up Here</a></b1>
                </div>
             </td></tr>
        </table>
        <span class="text-danger"><?php if (isset($errormsg)) { echo $errormsg; } ?></span>
        </div><!-- End div to contain form -->

            <!-- InstanceEndEditable -->

这可能已经足够了,因为唯一的问题是在上面的模板文件中找到的导航栏中的用户名代码。

你的语法错误就在这里:

    echo "Signed in as: '. $_SESSION['user_name']"; }

方便提示:语法高亮有助于发现这些东西很多-在StackOverflow上,字符串是红色的;你能看到$_SESSION也是红色的吗?与更正版本比较:

    echo "Signed in as: ". $_SESSION['user_name'];
} // tidier down here

你在末尾加了引号("),并把"answers" too "混在了一起。

在PHP中处理字符串时,可以同时使用"或',但不能同时使用两者:

  • "你好"(Ok)
  • "你好"(Ok)
  • "你好"(不!)

请注意两者之间也存在差异;使用"单引号"比使用"双引号"稍微快一些,但是PHP会按照字面意思使用单引号。比较"'n"answers"'n"

错误实际上在说什么?

所以,"双引号"内的文本不是字面意思。这就是为什么您可以执行"Hello $name"之类的操作。简而言之,PHP在字符串中发现了$_SESSION,但当它碰到方括号时,没有进一步处理。