Quadro de notas do Moodle e PHP5.3.9

Descobrimos (e resolvemos) um problema que apareceu recentemente. Ao atualizar notas diretamente pelo quadro de notas, tutores percebiam que algumas notas não mudaram. Por exemplo, as notas dos alunos com nomes de digamos até M podiam ser atualizados, mas as notas dos alunos mais para baixo no quadro permanciam inalteradas. A razão é uma combinação de quadro de notas muito grandes e uma atualização de segurança recente do PHP.

Em algumas disciplinas os quadros de notas são bem grandes: podem conter mais do que 40 ou 50 colunas. Isto significa que ao atualizar uma nota diretamente pelo quadro de nota as notas de, digamos 25 alunos vezes 40 colunas ou da ordem de 1000 itens de nota  devem ser atualizados. Vimos que o navegador estava mandando todos os novos valores corretamente na requisição POST ao servidor. Mas  aparentemente o Moodle não processava os valores após 1000 itens.

Acontece que uma atualização do PHP (implementada 10 de janeiro 2012) introduz uma nova variável de configuração: “Added max_input_vars directive to prevent attacks based on hash collisions”. Esta nova variável é igual a 1000, por padrão. Portanto, a solução para quem lida com quadro de notas grandes no Moodle é usar um valor maior para a variável max_input_vars. Isto pode ser feito, por exemplo, colando em seu arquivo .htaccess a linha

php_value max_input_vars 10000

variável foi acrescentado para proteger o seu servidor contra um ataque denial of service. Acreditamos que aumentando seu valor para 10 mil não aumente o risco deste tipo de ataque substancialmente (porque, sinceramente, há maneiras muito mais simples de fazer este ataque).

2 respostas para “Quadro de notas do Moodle e PHP5.3.9”

  1. Bom dia, utilizamos a versão 1.9 do moodle. Tenho percebido que o quadro de notas demora a atualizar quando eu coloco ou edito uma fórmula. Fica carregando até dar timeout.. depois de uns 4 ou 5 min eu entro nas notas e a fórmula foi aplicada. Vocês já passaram por algo parecido?

    Abraço

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.