Erro " Parse error: syntax error, unexpected" ao gerar gráficos

Olá, boa noite à todos.

Minha versão do ScriptCase é a 9 e com as últimas atualizações.

Estou com um problema meio chato com relação à geração de um gráfico.
No ambiente de produção funciona perfeitamente, mas quando envio para o servidor onde realmente irá funcionar, dar o seguinte erro:

Parse error: syntax error, unexpected '[' in /home/rgfsiste/sisepeonline.tecnogestor.com.br/chart_tbl_conv_empresa_orgao/chart_tbl_conv_empresa_orgao_grafico_sc_free_group_by.class.php on line 1420

Já refiz o gráfico diversas vezes, já enviei para mais de um servidor diferente, e mesmo assim esse mesmo erro persiste.
Todo o resto do sistema funciona de boas, exceto esse gráfico.

Como o código é gerado pelo ScriptCase, não sei bem o que pode estar acontecendo.
Abri o arquivo e fui até a linha especificada e esse é o código que está dando o erro:

 $a_json = is_array($value_format) ? ['chart' => array_merge($chart_attr_j, $value_format)] : ['chart' => $chart_attr_j];

Alguém que já tenha passado por isso poderia me fornecer alguma ajudinha? :slight_smile:

Gracias.

Olá Roberto bom dia,

Não entendi, isto aqui: “No ambiente de produção funciona perfeitamente”… o erro ocorre onde então?

O outro ponto é que na linha que postaste a princípio não tem nenhum erro, mas veja a linha anterior e poste aqui. Esse erro pode ser até de configuração do servidor em relação a gráficos no PHP…

Olá Kleyber, bom dia…obrigado por responder.

Bom, por “ambiente de produção” me refiro quando executo meu projeto ainda no ScriptCase mesmo, antes de ser publicado. Quando executo a aplicação funciona normalmente, mas depois que eu publico e coloco em outros servidores, da esse erro aí, ou seja…o erro ocorre no servidor onde a aplicação deverá funcionar e não “dentro do ScriptCase”.

Essas são as últimas linhas antes da linha que ocorre o erro.

       $chart_attr_j['caption']   = $this->formatFusionLabel($tit_graf);
       $chart_attr_j['xAxisName'] = $this->formatFusionLabel($tit_label);
       $chart_attr_j['yAxisName'] = $this->formatFusionLabel($tit_datay);
       $chart_attr_j['exportEnabled'] = 1;
       $chart_attr_j['exportFileName'] = "chart_tbl_conv_empresa_orgao";
       
       //Linha do erro
       $a_json = is_array($value_format) ? ['chart' => array_merge($chart_attr_j, $value_format)] : ['chart' => $chart_attr_j];

Sobre a possibilidade de ser configuração no servidor que não suporta gráficos em php, já entrei em contato com o suporte e segundo eles o servidor está configurado para suportar, mas que iriam rever as configurações.

Novamente, obrigado por sua atenção.

Não sei se adiantaria muita coisa, mas esse é o gráfico funcionando no ambiente de produção

http://rgfsistemas.localhoost.com/scriptcase/app/SISEPE_ONLINE/chart_tbl_conv_empresa_orgao/

E esse é o gráfico no servidor que está dando o erro

http://sisepeonline.tecnogestor.com.br/chart_tbl_conv_empresa_orgao/

Roberto,

Entendi. Na verdade funciona no teu ambiente de desenvolvimento… é que temos o costume de chamar de ambiente de produção onde o projeto está EFETIVAMENTE funcionando… rsrsrs mas blz.
Agora me ocorreu algo aqui. No teu ambiente de desenvolvimento, percebi que no filtro ENDEREÇO não tem nada dentro… é assim mesmo?

Roberto e Kleyber:

Será que a versão do PHP pode estar gerando este erro ?
Funciona no desenvolvimento, onde o PHP é provavelmente é a versão 7.

Mas e a versão do PHP em http://sisepeonline.tecnogestor.com.br, pois ele poderia interpretar algo de maneira diferente.

Olá Eduardo, boa tarde, obrigado também por sua atenção.

Sobre a versão do PHP, pensei que fosse no inicio, mas está atualizada para a última versão também.

Grato.

A versão do php no site tá 5.3:
http://sisepeonline.tecnogestor.com.br/_lib/info.php

Kleyber, na verdade não é assim não…rsss

Toda vez que verifico se há uma nova atualização do ScriptCase, aí quando reinicio, ele perde as configurações nesses campos aí, por isso que não estava mostrando nada.

Mas já reconfigurei novamente, no entanto, eu já havia feito outros testes com elas funcionando e o erro ainda acontecia.

Opa, e aí Eduardo.

Pois é, segundo o suporte do meu servidor, como o dominio principal havia sido atualizado para a versão 7, veja: http://tecnogestor.com.br/info.php, os subdominios também estariam atualizados.

Abri um chamado abordando esse problema aí, agora vou ver o que irão em dizer, pois esse pode ser o único motivo válido para esse problema.

Vou esperar me responderem, daí volto aqui blz.

Desde já, grato aos dois pela atenção que me deram.

Olá Kleyber e Eduardo, vocês estavam corretos, o problema era só na questão da versão do PHP mesmo, foi só atualizarem e os gráficos funcionaram.

Veja: http://sisepeonline.tecnogestor.com.br/chart_tbl_conv_empresa_orgao/

Os caras do suporte pensaram que haviam atualizado todos os subdomonios também, mas não atualizaram.

Enfim, obrigado aos dois pela atenção e pelo suporte, graças à vocês pude redirecionar o problema para a solução correta.

Obrigado.

Os valores de
post_max_size
memory_limit
max_input_vars

Podem causa problemas no futuro. ( seria necessário aumentar um pouco o valor dessas diretivas ).
Assim como ativar o pacote fileinfo

Legal que tenha resolvido.

Interessante essa dica do Ronyan para descobrir a versão do php de uma aplicação: _lib/info.php
Desconhecia esta página.
Por meio dela ele descobriu que o PHP era justamente a versão 5.3 :
Um exemplo de incompatibilidade é que ele não suporta a sintaxe [] para array, apenas PHP 5.4 e posteriores.

Valeu.