2010-07-26 28 views
0

如果我有一個頁面,其中有多個<?php ... ?>部分,其中包含純HTML部分。我注意到一個<?php ... ?>部分中的$_SESSION可變更集在另一個頁面上不可用。PHP會話和多個混合的PHP/HTML部分在一個頁面中

那麼,最佳做法是什麼?

1)撥打session_start()作爲每個<?php ... ?>部分的第一行?

2)只有一個<?php ... ?>部分覆蓋整個頁面?如果是這樣,我必須將每個HTML部分包裝在echo中,這是令人討厭的,它們是HTML表單元素。也許heredoc他們?

這是我第一次嘗試這樣的事情,但我不是第一次這樣做 - 接受的最佳實踐是什麼?


編輯:Aplogies,我的蠢事。一個PHP開始<?的部分,而不是<?php

回答

3

如果我有純 HTML部分interspresed多個部分的頁面。我注意到 $ _SESSION varible在一個部分中設置不可用 另一個在同一頁上。

php標籤<?php ... ?>的部分與會話無關。請確保你把:

session_start()

你的頁面頂部

+0

+!謝謝。這是我的理解(從閱讀,而不是實際的做法,但它不是這樣工作的。一個頁面有三個PHP部分,第一個是Session_start(),第二個設置了$ _SESSION []變量,var_dump()在第三個,它是空的。警告 - 我使用Xpppp和頁面上lcoalhost - 這給了過去的其他問題。 – Mawg 2010-07-26 09:22:17

+0

哎呀,對不起 - 代碼錯誤 - 請參閱上面的編輯問題 – Mawg 2010-07-26 09:38:30

+0

@mawg:o對那些是愚蠢的,但有時難以發現錯誤:) – Sarfraz 2010-07-26 09:39:39

1

只要您在執行任何輸出之前設置標頭,就不應該對該會話有任何問題(因爲函數session_start()也會設置標頭)。

在頁面上有多個PHP部分真的沒有問題。但我強烈建議,在單獨的文件或第一部分中執行所有邏輯(從數據庫讀取數據,處理表單數據)。

+0

+1謝謝。正如我上面所說,這可能是一個Xampp問題。我將上傳到一個真實的網站,而不是本地主機,並在那裏。 – Mawg 2010-07-26 09:33:36

+0

哎呀,抱歉 - 錯誤的代碼 - 請參閱上面的編輯問題。 – Mawg 2010-07-26 09:39:10

相關問題