2009-01-19 52 views
6

我有一個使用PHP和HTML頁面的網站,我想創建一個存儲登錄頁面的用戶名的會話。但登錄頁面是PHP和接下來的頁面是HTML。與HTML的PHP​​會話

這是一個問題,或者我可以再補充PHP的小語句轉換成HTML頁面,指出

<?PHP session_start(); 
$_session['loginid']=$_post['username']; 
?> 

還是我做錯了?

這是我第一次使用會話,他們混淆了我一點。

感謝您的任何幫助。

回答

9

如果您可以訪問你的Apache配置,或者一個簡單的.htaccess文件,你可以告訴Apache處理一個.html文件內PHP代碼。您可以通過創建一個的.htaccess文件在網站上的文檔根目錄(可能的public_html /),並把該做進去(記得(點),該文件名的第一個字符):

# Add this to public_html/.htaccess file 
AddHandler application/x-httpd-php .html 
AddHandler application/x-httpd-php .htm 

你應該能夠重新加載html頁面,並且你的PHP代碼(來自Michael Matthews的答案)將運行得很好。

+0

當然,別忘了用PHP引擎解析每個HTML頁面是一個小的放緩,但可能不是你會注意到的。 – TravisO 2009-01-19 18:46:22

3

由於會話是由PHP處理的,它需要PHP來維護狀態。您至少需要session_start()才能使用存儲在$_SESSION中的會話變量。

1

您不能將php放入.html文件中,而不必隨身攜帶服務器的配置文件。你只應該把PHP放入.php文件。

如果你有很多.html文件,你可以簡單地將它們重命名爲.php文件。將純html放入something.php是可以的。所以,你應該確保你的所有文件都以.php結尾,然後你可以把你想要的任何會話邏輯放入它們中。

5

您正試圖共享一個帶有text/html類型頁面的PHP會話變量。正如你所建議的,你必須讓HTML頁面成爲一個PHP頁面才能工作,並在某處添加一小段PHP來顯示用戶名。

將您的HTML頁面更改爲PHP。在頁面的頂部添加這樣的事情:

<?php 
    session_start(); // must be before any output 
    $username = $_SESSION['username']; // or whatever you called it 
    // check that $username is valid here (safe to display) 
?> 
html here 
Hello <?= $username ?>! 
+0

請注意,這需要短標籤,以便最大限度地支持使用:<?php echo $ username; ?>在最後一行。同樣如上所述,確保從$ username中清除HTML標籤。否則它們會顯示在你的頁面(XSS) – 2009-01-19 18:34:06