2013-11-22 55 views
0

此代碼中的其他dosent工作,我已經追平很多事情不只是重定向()如何編寫PHP否則在HTML

<html> 
<?php if($_SESSION['username']) : ?> 
<? 
echo "Hi, " .$_SESSION['username']. " | "; 
?> 
<a href='logout.php'>Logout</a> 
<? 
else 
redirect(); 
?> 
<?php endif; ?> 
</html> 
+1

使用大括號這種風格是否有優勢? –

+0

我會說它的個人喜好,只要你緩存字節碼,性能保持不變。 – SamV

回答

1

您是否使用了特殊的框架來構建的網頁?通常情況下,你的輸出用PHP可以是HTML一樣,所以無需啓動/停止腳本語言,而是嘗試是這樣的:?

<html> 
<?php 
if($_SESSION['username']) 
{ 
    echo "Hi, " .$_SESSION['username']. " | "; 
    echo "<a href='logout.php'>Logout</a>"; 
} 
else 
{ 
    redirect(); 
} 

>

2

如果替代語法讓你困惑,你總是可以使用更熟悉的大括號:

<?php if($_SESSION['username']) { ?> 
    Hi, <?php echo $_SESSION['username'] ?> | <a href='logout.php'>Logout</a> 
<? } else { redirect(); } ?> 

還是做這一切在PHP中:

<?php 
if($_SESSION['username']) { 
    echo "Hi, " . $_SESSION['username'] . " | <a href='logout.php'>Logout</a>"; 
} else { 
    redirect(); 
} 
?> 

我個人發現那些更清潔。

1

的其他錯過了 ':'

<html> 
<?php if($_SESSION['username']) : ?> 
    <? 
    echo "Hi, " .$_SESSION['username']. " | "; 
    ?> 
    <a href='logout.php'>Logout</a> 
<? 
    else: 
    redirect(); 
?> 
<?php endif; ?> 
</html> 
-2

使用else條件結腸。還請檢查您的php支持<?或不。試試這個:

<?php 
    else: 
    redirect(); 
    ?> 
+0

你在談論什麼PHP支持? –

+0

他指的是<?'short_open_tag被啓用。如果short_open_tag被禁用,並使用'<?',你會看到PHP代碼輸出到瀏覽器。 –

0

如果你正在做一個重定向話,我會考慮具有通過代碼的主路徑,這樣,它的頂部清晰,而不是埋3/4一路下滑。另外,你可以在頁面的其餘部分忘記它。

E.g.

<?php 
    if(! $_SESSION['username']) { 
    redirect(); 
    } else { ?> 
    stuff... 
<?php 
    } >