Обход ограничения max_input_vars в PHP без php.ini
Сегодня столкнулся с ограничением на количество входящих из формы в скрипт переменных в PHP.
Отвечает за это параметр max_input_vars, который по-умолчанию равен 1000.
Поскольку я разрабатываю CMS, то было бы не правильным в .htaccess менять это значение. Поэтому я решил обойти это.
С данной проблемой у меня сталкивается админка. А поскольку она не работает и не должна работать без JS, то я использовал такой JavaScript:
$("#editSaveButton").on('click', function(){ form = $("<form method=\"POST\"></form>") .attr('action', $('#editForm').attr('action')) .append( $("<input type=\"hidden\" name=\"serializedData\">").val( $("#editForm").serialize() ) ) .append( $("#editForm input[name=token]").clone() //@todo token name can be different ) .appendTo($("body")) .submit(); return false; }); |
И вот такой код в PHP, чтобы заменить $_POST нужными данными:
private function prepareSerializedData() { if (isset($_POST['serializedData'])) { $_POST = CMap::mergeArray($_POST, $this->parse_str($_POST['serializedData'])); unset($_POST['serializedData']); } } private function parse_str($string) { $parts = explode("&", $string); $result = array(); foreach ($parts as $part) { $parsed = array(); parse_str($part, $parsed); $result = array_merge_recursive($result, $parsed); } return $result; } |
Яндекс сменил принцип расчета тИЦ?
Все мы знаем, что ТИЦ расчитывается как бы для сайта целиком, а не для страницы, как это делается в алгоритме PageRank.
Собственно в хелпе Яндекс так и пишет:
Наш тематический индекс цитирования (тИЦ) определяет «авторитетность» интернет-ресурсов с учетом качественной характеристики ссылок на них с других сайтов.
Казалось бы, всё предельно понятно. Интернет-ресурс это сайт.
Но не тут то было. Сегодня внезапно случайно обнаружил, что Яндекс пытается мутить и определять на сайте разделы(ссылка "Все подразделы" в яке). Пока что, видимо, у него это не очень то получается:
Это собственно всё. Всего-то две категории. Что самое интересное - у этих категорий свой тиц. И всё бы хорошо, для ленты вроде бы это более-менее логично.
Но вот, что творится, например, с facebook:
Странно? Более чем. Видимо это какой то глюк в алгоритмах.