我看到錯誤日誌是由於似乎是發佈數據的截斷引起的。在調試之後,我的猜測是問題在於我們使用xmlhttprequest來發布帖子,並且用戶在完成發佈數據發送之前關閉瀏覽器。PHP能檢測到不完整的xmlhttprequest.send(data)命令嗎?
這裏是我們的js代碼:
httpReq = new XMLHttpRequest();
httpReq.open("POST", url,false);
httpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpReq.send(param);
有沒有一種方法來檢測不是尋找在那裏失蹤後的參數以外的PHP端一個不完整的發送? (我們不能這樣做,因爲他們是動態的。)
2011-02-27編輯:
舉例來說,客戶端發送這樣的:
&obj1_name=Greeting&obj1_type=string&obj1_value=hello&obj1_id=34
的obj1_id是一個必填字段,用於存儲有關對象的其餘詳細信息。但有時我們收到一個字符串,如:
&obj1_name=Greeting&obj1_type=string
我的目標是告訴一個破碎的客戶端之間的(一個地方意味着發送短字符串),我們需要解決和工作的客戶區別,那被關閉得太早(其中意思是發送長字符串),並且我們可以將錯誤註銷爲不可避免的。
我會給你一個鏡頭,謝謝。 – VexedPanda
對不起,延遲迴復。這似乎並不奏效。我補充說: ob_implicit_flush(); if(connection_aborted()) {strContents。='!!! Connection Aborted !!!'; } 但我們從來沒有在日誌中獲得該評論。 – VexedPanda
另外嘗試調用'ignore_user_abort(true)',這樣腳本在客戶端中止並有機會寫入日誌時仍能運行。 – Alex