2014-01-09 26 views
1

我使用$ _SESSION將一些變量從一個頁面傳遞到另一個頁面。英鎊與ANSI編碼和PHP錯誤與UTF-8的盈方

當我將編碼設置爲ANSI時,無論出現英鎊符號,我都會得到符號。 如果我轉換爲UTF-8,問題消失,但我得到了下面的PHP錯誤:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/me/public_html/path/order.php:1) in /home/me/public_html/path/order.php on line 2

我的代碼如下:

session_start(); 
$price = $_SESSION['get_price']; 
+1

您的錯誤表明您已經在此點之前輸出HTTP頭。所以,你需要在session_start()之前考慮你的代碼。 – borrible

+0

除了上面的代碼外,該頁面上沒有其他內容。 –

+3

Order.php:1你的<?php行,如果是的話,你是否檢查過(可能在十六進制編輯器中)你在開始時沒有多餘的字符?例如。檢查BOM(字節順序標記)。 – borrible

回答

2

你有一個(不可見),BOM(字節-order-mark),它由編輯器在文件開始時放置。它在session_start()之前正在輸出,從而使您的頁面無法更改HTTP標頭。刪除BOM並且問題將消失。