[PHP] Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini.

PHP Warning:  Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0

PHP Warning:  PHP Request Startup: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0

(1) 까닭

  PHP에서 GET / POST / COOKIE로 주고 받고 다루는 변수와 배열의 원소가 1000개를 넘으면 나오는 위와 같은 경고문(Warning)이 나올 수 있다. 이 경고문이 나올 때에 POST 방식으로 보내는 문자열이 잘릴 수 있다.(참고: PHP POST 전송 데이터가 짤릴 때)

  POST 방식으로 들어온 XML 내용을 웹 서버가 잘못 받아들이는 것도 까닭이 될 수 있다.

(2) 풀기

① php.ini에서 max_input_vars 올리기

  웹 서버의 php.ini에서 max_input_vars 값에 관한 내용을 찾아 값을 올려 준다.

; How many GET/POST/COOKIE input variables may be accepted
;max_input_vars = 1000

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 2000

  php.ini의 흔한 파일 경로는 /etc/php.ini이지만, 다른 경로(/etc/opt/remi/php81/php.ini 등)에 있을 수도 있다. 고친 php.ini는 웹 서버 엔진을 다시 시작해야 적용된다.

  php.ini는 웹 서버의 관리 권한이 있어야 고칠 수 있다. 웹 서버의 관리 권한이 없고 아파치 서버를 쓰고 있다면 다음에 설명할 htaccess 파일을 고치는 방법을 쓸 수 있다.

② .htaccess 파일에서 max_input_vars 올리기

  아파치(apache) 서버 엔진을 쓰고 있다면, 웹 프로그램이 적용되는 .htaccess 파일에 다음과 같이 넣어서 max_input_vars 값을 바꿀 수 있다.

PHP_VALUE max_input_vars 2000

  고친 .htaccess 파일은 웹 서버 엔진을 다시 시작하지 않더라도 적용된다.

③ 프로그램 고치기

  max_input_vars를 많이 올려도 같은 오류가 난다면, PHP 프로그램의 문제일 수 있다. PHP 프로그램에서 POST 방식으로 주고받는 변수나 배열 원소가 많은 곳을 점검해 본다.

  POST 방식으로 온 정보를 웹 프로그램이 잘못 받아들여 경고문이 나오기도 한다. XML 형식으로 들어온 POST 정보를 웹 프로그램이 물음글(쿼리) 형식으로 받아들이면 그럴 수 있다.

2022/08/18 02:04 2022/08/18 02:04
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요