2011-12-19 2 views
3

일부 데이터가 html 테이블에서 시각화 된 웹 페이지에서 작업하고 있습니다. 나는 사용자가 Excel 문서로 데이터를 검색 할 수 있고 PHPExcel을이 용도로 사용하기를 원한다. 데이터는 배열 배열 (배열 첫 번째 행 (첫 번째 col, ..., 마지막 col), ..., 배열 마지막 행 (first col, ..., last col))의 배열에 저장됩니다. 그래서 excel 파일이 만들어지는 datatoexcel.php에 데이터를 전달하기 위해 배열을 직렬화하고 POST와 함께 전송합니다.localhost에서 작동하지만 웹 서버에서는 작동하지 않는 PHP 직렬 가능 작업

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

이 우수 로컬 호스트에있는 동안 작동하지만이 웹 서버 $에 그것을 실행할 때 funcdata 어떤 데이터가하지 않는 것 :

$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에서 검색됩니다 . Localhost는 Apache2 및 PHP 5.2.17을 사용하여 Windows 7을 실행하고 웹 서버는 Apache2 및 PHP 5.2.6을 사용하여 Linux RedHat 5.2를 실행합니다. PHPExcel이 웹 서버에서 작업 중입니다. datatoexcel.php에 하드 코드 된 배열을 만들려고 시도했지만 엑셀 문서가 제대로 나왔습니다.

+0

$ 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 오류가 발생했습니다 ... –

관련 문제