2012-03-16 53 views
0

在使用憑據登錄之前驗證我的登錄頁面時,頁面完全驗證。但是當我在開始php會話之後進行驗證時,它會給出內聯和塊級元素之間的錯誤 - 錯誤。會議似乎已經插入隱藏input元素後form標籤像圖所示:PHP會話中的XHTML doctype驗證問題

<form method="post" action ="log.php"> 
<input type="hidden" name="PHPSESSID" value="l96qs5ksgpkbpkr4sblilhqku6" /> 

我怎樣才能避免這種情況?我們可以控制這個hidden input元素的插入位置嗎?

+1

這不是自動插入。在你使用的CMS(或其他)中的東西是插入。你必須去找到並移動它。 – animuson 2012-03-16 20:05:45

+0

[PHPSESSID可能出現在任意形式](http://stackoverflow.com/questions/6576355/phpsessid-appears-in-form-arbitrarily) – prodigitalson 2012-03-16 20:07:45

+0

@animuson:這就是我認爲也是,但似乎有編譯你可以設置標誌,使這種行爲發生。我從來沒有遇到過,在我8年的硬核PHP中,但顯然它存在。 – prodigitalson 2012-03-16 20:08:57

回答

1

試試這個在.htaccess:

php_value session.use_cookies 1 
php_value session.use_only_cookies 1 
php_value session.use_trans_sid 0 

或PHP:

ini_set('session.use_trans_sid', false); 
+0

非常感謝,真正的問題是什麼?你能解釋一下嗎? – 2012-03-16 20:31:02

+0

當cookies被禁用並且use_trans_sid打開時,php將生成PHPSESSID。這是PHP的自動功能 – ydd1987 2012-03-16 20:46:25