Если вы заметили, что вариации товаров, налоговые ставки и другие большие наборы данных не сохраняются, причиной может быть Suhosin (модуль безопасности PHP), который ограничивает передачу POST-данных. Также проблема может возникать на серверах с PHP версии 5.3.9+ и при использовании mod_security.
Настройка Suhosin
Если Suhosin включен, возможно, потребуется увеличить лимиты отправляемых данных. Настройки зависят от хостинга, поэтому лучше уточнить у провайдера. В некоторых случаях параметры можно изменить через php.ini, suhosin.ini или .htaccess.
Обычно требуется изменить следующие значения:
suhosin.post.max_array_index_length = 256
suhosin.post.max_totalname_length = 65535
suhosin.post.max_vars = 1024
suhosin.post.max_name_length = 256
suhosin.request.max_varname_length = 256
suhosin.request.max_array_index_length = 256
suhosin.request.max_totalname_length = 65535
suhosin.request.max_vars = 1024
После внесения изменений потребуется перезапустить сервер.
На виртуальном хостинге, где нет доступа к php.ini, можно попробовать задать параметры через .htaccess:
php_value suhosin.max_array_index_length 256
php_value suhosin.post.max_array_index_length 256
php_value suhosin.post.max_totalname_length 65535
php_value suhosin.post.max_vars 1024
php_value suhosin.post.max_name_length 256
php_value suhosin.request.max_varname_length 256
php_value suhosin.request.max_array_index_length 256
php_value suhosin.request.max_totalname_length 65535
php_value suhosin.request.max_vars 1024
Если вы используете не-латинские символы, рекомендуется увеличить значение:
suhosin.request.max_varname_length = 256 PHP 5.3.9+ и max_input_vars
В новых версиях PHP есть параметр max_input_vars, который по умолчанию обычно равен 1000. Это означает, что при отправке формы с более чем 1000 полями часть данных может обрезаться и не сохраниться.
Значение можно изменить в php.ini:
max_input_vars = 3000 Или через .htaccess (если используется виртуальный хостинг):
php_value max_input_vars 3000 Mod_security
Модуль mod_security также может блокировать сохранение данных. В этом случае могут появляться ошибки 503.
Возможные решения:
- Настроить mod_security для пропуска данных (для опытных пользователей)
- Отключить mod_security по IP
- На некоторых хостингах (например, DreamHost) отключить параметр «Extra web security» в панели управления
WP Max Submit Protect
Чтобы убедиться, что проблема связана именно с ограничениями на отправку данных, можно временно установить и активировать плагин:
