문제

Ubuntu의 Apache 2.2.4에 따른 PHP 4.4 및 PHP 5.2.3.

나는 Moodle 1.5.3을 운영하고 있으며 최근에 코스를 업데이트 할 때 문제가있었습니다. $ _post 변수는 비어 있지만 양식의 텍스트 주로에 많은 텍스트를 입력 한 경우에만 가능합니다. 짧은 텍스트 만 입력하면 잘 작동합니다.

Post_max_Size를 8m에서 200m로 늘리고 Memory_Limit을 256m로 증가 시켰지만 이것은 도움이되지 않았습니다. LimitrequestFieldsize와 Limitrequestline을 16380으로 두 배로 늘리고 LimitrequestBody를 0으로 설정했습니다.

답을 찾기 위해 Googled가 있었지만 찾을 수 없었습니다.

Firefox의 HTTP 헤더는 올바른 데이터가있는 3816의 컨텐츠 크기를 보여 주므로 $ _post가되지 않습니다.

이 시스템은 몇 주 전까지 정상적으로 실행되었습니다. 유일한 변경 사항은 /etc /호스트가 Exim4 이메일 서버의 HELO 문제를 수정하는 것이 었습니다.

Exim4가 실행되지 않은 개발 기계에서 문제를 복제 할 수 있으므로 우연의 일치라고 생각합니다.

도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

게시물의 크기가 아니라 새로운 라인 앞에 라인이 얼마나 오래 걸릴 수 있습니까? 그들이 moodle wysiwyg view를 사용하면 HTML은 휴식없이 한 줄에 넣습니다. HTML로 가서 1000 자마다 반환하면 작동합니까?

다른 팁

나는 실제로 유용한 답변을 제공 할만 큼 충분히 알지 못하므로 다음은 더 잘 교육받은 추측입니다 (적어도 그렇게 희망합니다).

먼저 Access_Log 또는 예를 들어 전체 요청을 디버깅해야합니다. 개똥 벌레. (어쨌든 Firebug를 갖는 것이 좋습니다.) 나에게 당신의 문제 소리 리디렉션이 그 사이에서 발생합니다. 예를 들어요 :

이것이 당신의 구조라고 가정합니다.

/form.php
/directory/index.php

이것은 당신의 형태입니다 :

<form action="/directory" method="post">
...
</form>

이 경우 문제는 그럼에도 불구하고 /directory 유효한 URL입니다. Apache는 한 번 더 리디렉션됩니다. /directory/, 따라서 당신은 당신의 페이로드를 잃어 버리고 있습니다 ( $_POST).

양식의 Enctype는 무엇입니까? 양식을 통해 전송되는 데이터의 탄수를 제한 할 수 있습니다.

들어오는 RAW $ _post 데이터를 다음과 같이 확인할 수도 있습니다.

file_get_contents('php://input');

그들이 실제로 데이터 전송인지 확인하기 위해. 이 제안을 받았습니다 여기.

Apache 또는 Apache/PHP 통합 문제처럼 들립니다. $ _post가 비어 있으면 HTTP 서버가 PHP에 게시물 정보를 제공하지 않는다는 것을 암시합니다. 내가 당신이라면 Apache 구성을 조사 할 것입니다.

이것은 분명하지만 /etc/init.d/apache2 다시 시작 했습니까?

또한 Error_Log 파일에는 게시물 크기가 설정 한도를 초과했는지 여부에 대한 정보가 표시되어야합니다. 문제 해결에 대한 진실성을 높이는 것을 고려하십시오

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top