2011-12-19 60 views
3

我正在一個網頁上工作,在html表格中有一些數據可視化。我希望用戶能夠以Excel文檔的形式檢索數據,並且爲此使用PHPExcel。數據存儲在數組數組中, 數組(數組第一行(第一列,...,最後一列),...,數組最後一列(第一列,...,最後一列))。因此,爲了將數據傳遞到excel文件所在的datatoexcel.php,我序列化數組並使用POST發送它。在本地主機上但不在網絡服務器上的PHP序列化工作

$functiondata = serialize($func[1]); 
echo '<form action="datatoexcel.php" name="dataform" method="post">'. 
'<input type=hidden name="functiondata" value="'.htmlspecialchars($functiondata).'">'. 
'<input type="radio" name="format" value="xls" checked>xls'. 
'<input type="radio" name="format" value="xlsx">xlsx'. 
'</form>'; 
echo "<a href=\"#\" onclick=\"document['dataform'].submit()\">Export table data</a>"; 

的數據然後在datatoexcel.php檢索與:

$serialized_func = $_POST['functiondata']; 
$funcdata = unserialize($serialized_func); 

這工作出色,同時在本地主機上,但是當我在Web服務器上運行$它funcdata似乎沒有任何數據。 Localhost使用Apache2和PHP 5.2.17運行Windows 7,Web服務器使用Apache2和PHP 5.2.6運行Linux RedHat 5.2。 PHPExcel正在處理Web服務器,我試圖在datatoexcel.php中創建一個硬編碼數組,而且excel文檔結果很好。

+0

does $ func [1]返回期望的結果?顯示任何錯誤?如果沒有顯示錯誤,您確定error_reporting是E_ALL,並且不使用@(錯誤抑制運算符)? – Sejanus

回答

2

您是否使用完全相同的輸入數據測試它? 您的本地或遠程服務器是否啓用了magic_quotes?這可能也會干擾您的輸入數據。

我認爲這可能與使用htmlspecialchars()有關。如果htmlspecialchars()從輸入轉換任何字符,則必須在反序列化之前使用htmlspecialchars_decode($ serialized_func):

unserialize(htmlspecialchars_decode($ serialized_func));

最後,請務必設置 error_reporting(E_ALL);

在腳本開始時,您可能會以這種方式捕捉到一些警告。

+0

我想我已經測試過相同的輸入數據,但不是100%確定。不確定magic_quotes,但會檢查出來。感謝您的提示。 – Nait

+0

服務器啓用了magic_quotes。有點工作:) – Nait

0

我建議你使用json_encode和json_decode。它像序列化或反序列化,但任何語言都實現它們。

+0

感謝您的提示,我會一定要嘗試當我恢復工作。 – Nait

+0

任何語言都不是,所有語言XD對不起,錯誤... –

相關問題