2014-09-03 63 views
0

我得到一個語法錯誤此位PHP的:一旦用戶登錄,試圖在我的導航欄中顯示用戶的用戶名?

<?php 
if(!empty($_SESSION['user'])) 
{ 
    echo '<li class="dropdown">'; 

    Problem somewhere in here -> echo '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Logged in ('echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8')')<span class="caret"></span></a>'; <-Problem somewhere in here 

    echo '<ul class="dropdown-menu" role="menu">'; 
    echo '<li class="inactive"><a href="account.php">Account</a></li>'; 
    echo '<li class="inactive"><a href="logout.php">log out</a></li>'; 
    echo '</ul>'; 
} 
    else{echo '<li class="inactive"><a href="login.php">Log In</a></li>'; 
} 
?> 

希望有人比我更能夠發現什麼導致這個問題?

它位於Bootstrap下拉菜單中。 如果您需要更多信息,我會盡我所能來回答。 謝謝。

+0

你有你的迴音語句中的echo語句。 – Jim 2014-09-03 13:23:03

回答

0

這是因爲你在回聲中迴盪。你應該concatonate字符串,像這樣:

echo '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Logged in (' . htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8') . ')<span class="caret"></span></a>';

+0

謝謝你的理解,如果我在發佈這些內容時分裂了一些沒有問題的東西,就會四處尋找「Concatonation」,不斷尋找關於舊版的塞爾達傳說遊戲(鏈接PHP)的東西。 非常感謝:) – iceytoa1 2014-09-03 13:26:16

0

我會建議使用一種更復雜的方法:

function returnContentUserSignedIn($user) { 
     return ' 
     <li class="dropdown"> 
       <!-- CONTENT --> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
         Logged in ' . htmlspecialchars($user) . '<span class="caret"></span> 
       </a> 
       <!-- CONTENT --> 
     </li>'; 
} 

function returnContentUserSignedOut() { 
     return ' 
     <li class="inactive"> 
       <!-- CONTENT --> 
     </li>'; 
} 

<?php echo (!empty($_SESSION['user']) ? returnContentUserSignedIn($_SESSION['user']) : returnContentUserSignedOut()); ?> 
相關問題