2017-02-12 118 views
1

我是一名PHP初學者,我希望登錄用戶的名稱和姓名能顯示在我的導航欄上。相反,它顯示了PHP代碼。這是我在導航欄中的代碼。登錄用戶名和姓不會顯示在導航欄上

<?php 
    echo "<p>" . $_SESSION['vorname'] . " " . $_SESSION['nachname'] . "</p>"; 
?> 

這是它所代表的。

The output on the screen.

I changed the file extension to .php and this is what it outputs now.

+1

此代碼是否保存在擴展名爲「.php」的文件中?其他PHP腳本在同一個網站上工作嗎? –

+0

不,此代碼保存在index.html文件中,是的,其他PHP腳本正常工作。 –

回答

-1

該通知表明會話未在您的腳本中啓動,因此您需要撥打session_start()之前訪問$_SESSION變量。檢查用戶是否登錄也是明智的:

<?php 
    session_start(); 
    if (isset($_SESSION['vorname'], $_SESSION['nachname'])) { 
     echo "<p>" . $_SESSION['vorname'] . " " . $_SESSION['nachname'] . "</p>"; 
    } else { 
     echo "<p>No user is logged in</p>"; 
    } 
?> 
+0

我添加了您建議的更改。它不起作用,它再次顯示第一個輸出。 –

+0

第一個輸出 - 你的意思是它顯示頁面中的PHP代碼?如果是這樣,你真的需要將它保存在擴展名爲「.php」的文件中,否則會起作用。 –

+0

是的,它顯示頁面中的PHP代碼。我將它們保存在一個.php文件中,但它仍然無效。 –

0

PHP檔案必須與將要執行的.php文件擴展名保存。我想其他工作文件都有正確的文件擴展名?

+0

這應該是一個評論 –

+0

檢查我的編輯請。 –

0

您必須將所有帶有php代碼的文件保存爲.php

在他們裏面,你可以使用乾淨的HTML:

<html> 
<head></head> 
<body> 
    <h1>Hello, World!</h1> 
</body> 
</html> 

或HTML混合用PHP:

<html> 
<head></head> 
<body> 
    <?php echo '<h1>Hello, World!</h1>'; ?> 
    <?php echo '<p>You are logged as '.$_SESSION['vorname'].' '.$_SESSION['nachname'].'</p>'; ?> 
</body> 
</html> 

要記住,在本地主機上使用PHP服務器(XAMPP,WAMP) - PHP文件將不如果在網絡瀏覽器中直接打開它們(例如file:///C:/xampp/htdocs/hello/index.php

+0

請檢查我的編輯。 –

+0

所以如果你得到'未定義的變量_SESSION'錯誤,這意味着你沒有開始一個會話,變量是未知的。 Put'<?php session_start(); ?>'在你的'php'文件的第一行(它必須是第一行)。如果(!isset($ _ SESSION ['vorname'])){ $ _SESSION ['vorname'] ='';如果(!isset($ _ SESSION ['nachname'])){ } $ _SESSION ['nachname'] =''; } ?>' 這段代碼的意思是:如果變量不存在,就製作它。 –