我有一個使用PHP和HTML頁面的網站,我想創建一個存儲登錄頁面的用戶名的會話。但登錄頁面是PHP和接下來的頁面是HTML。與HTML的PHP會話
這是一個問題,或者我可以再補充PHP的小語句轉換成HTML頁面,指出
<?PHP session_start();
$_session['loginid']=$_post['username'];
?>
還是我做錯了?
這是我第一次使用會話,他們混淆了我一點。
感謝您的任何幫助。
我有一個使用PHP和HTML頁面的網站,我想創建一個存儲登錄頁面的用戶名的會話。但登錄頁面是PHP和接下來的頁面是HTML。與HTML的PHP會話
這是一個問題,或者我可以再補充PHP的小語句轉換成HTML頁面,指出
<?PHP session_start();
$_session['loginid']=$_post['username'];
?>
還是我做錯了?
這是我第一次使用會話,他們混淆了我一點。
感謝您的任何幫助。
如果您可以訪問你的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的答案)將運行得很好。
由於會話是由PHP處理的,它需要PHP來維護狀態。您至少需要session_start()
才能使用存儲在$_SESSION
中的會話變量。
您不能將php放入.html文件中,而不必隨身攜帶服務器的配置文件。你只應該把PHP放入.php文件。
如果你有很多.html文件,你可以簡單地將它們重命名爲.php文件。將純html放入something.php
是可以的。所以,你應該確保你的所有文件都以.php結尾,然後你可以把你想要的任何會話邏輯放入它們中。
您正試圖共享一個帶有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 ?>!
請注意,這需要短標籤,以便最大限度地支持使用:<?php echo $ username; ?>在最後一行。同樣如上所述,確保從$ username中清除HTML標籤。否則它們會顯示在你的頁面(XSS) – 2009-01-19 18:34:06
當然,別忘了用PHP引擎解析每個HTML頁面是一個小的放緩,但可能不是你會注意到的。 – TravisO 2009-01-19 18:46:22