2014-04-24 65 views
0

我試圖顯示「登錄」/「註銷」鏈接。我想顯示登錄鏈接,如果他們沒有登錄等。我無法讓這個工作。繼承人我一直在嘗試:PHP如果/然後顯示鏈接

<?php if (isset($_SESSION['access_token'])) 
{ ?> <a href="logout.php">Log out</a><?php } ?> 
<?php 
else 
{ ?> <a href="login.php">Log In</a> <?php } ?> 

基本上,如果設置了assess_token,它將顯示一個鏈接註銷。如果沒有,則登錄鏈接。我不斷收到這是一個錯誤:

Parse error: syntax error, unexpected T_ELSE

我嘗試了這種變化:

<?php if (isset($_SESSION['access_token'])) 
{ echo "<a href="logout.php">Log out</a>" } 
else 
{ echo "<a href="login.p">Log In</a>" } ?> 

這讓我跟你:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'

什麼我在這裏失蹤?

+0

[?參考 - 這是什麼錯誤PHP意味着]可能重複(http://stackoverflow.com/questions/12769982/參考什麼是這個錯誤意味着在PHP) – Anonymous

+2

它看起來像你在'echo「語句後缺少分號 – Carpetsmoker

+0

這」重複「當然是母親的PHP錯誤-Questions。但是,它沒有提到任何錯誤消息(沒有提到T_ELSE或T_STRING)。這不是該問題的重複。 –

回答

3

你有2個例子,都有語法錯誤:

Parse error: syntax error, unexpected T_ELSE 

如果你正確格式的代碼,你發現錯誤:

<?php 
    if (isset($_SESSION['access_token'])) { 
     ?> <a href="logout.php">Log out</a><?php 
    } else { 
     ?> <a href="login.php">Log In</a> <?php 
    } 
?> 

即:

<?php } ?> 
<?php 
else 
{ ?> 

無效。 PHP的解釋器無法處理這個!請使用<?php } else { ?>

第二種:使用Syntax-Highlighted編輯器!您會看到該語法不正確。 逃生在代碼中",你忘記了回聲後;

<?php 
    if(isset($_SESSION['access_token'])) { 
     echo "<a href=\"logout.php\">Log out</a>"; 
    } else { 
     echo "<a href=\"login.php\">Log In</a>"; 
    } 
?> 
3

這很正常。看看你的回聲。只有雙引號。你必須使用(例如)用於回聲雙引號,單引號來分隔logout.php和login.php中

echo "<a href='logout.php'>Log out</a>"; 
+1

另外,儘管你的例子顯示了一個';',OP的代碼也沒有。 –