Strict Standards: Only Variables Should Be Assigned By Reference
Strict Standards: Only Variables Should Be Assigned By Reference. Em nossa conexão, este erro foi causado pelo símbolo & Comercial, quando passamos a utilizar o PHP 6.
Depois de atualizar meus servidores para o Apache 2.4, com PHP 6 e MySql 5.6 os erros do código obsoleto do PHP anterior foram surgindo.
No caso da conexão com o banco de dados que utilizámos
$connect = &$conn->Execute('SELECT MAX(catid) FROM `categori`');
- Em nosso caso bastou remover o símbolo de & que estava antes da conexão, $conn e resolveu o problema.
- Se você está passando por este mesmo erro tente fazer isso em todas as páginas que você tem este tipo de conexão com MySql.
Seu código para consertar o Strict Standards deve ficar parecido com este:
$connect = $conn->Execute('SELECT MAX(catid) FROM `categori`');
Sem o & comercial.
Salve o arquivo e faça teste antes de modificar os outros arquivos.
Por que você está recebendo a mensagem de padrões estritos
Avisos estritos são enviados pelo PHP quando certos recursos antigos são usados ou algum código não adere aos padrões estritos do php. Em geral, esses erros são úteis apenas no desenvolvimento e podem ser ignorados na produção.
No PHP 5.4, o E_STRICT tipo de erro Strict Standards foi definido como saída por padrão. Como as versões legadas do concrete5 fazem uso de alguns recursos obsoletos e podem gerar avisos estritos, essa mudança fez com que as versões do concrete5 que não são compatíveis com PHP 5.4 mostrassem muitos avisos do php.
Como remover a mensagem de erro de padrões estritos
A maneira recomendada de resolver esse problema é modificar os arquivos de origem para desativar a saída de avisos E_STRICTou de E_DEPRECATED. O código que usamos para fazer isso é:
// Shim to hide errors! error_reporting(error_reporting() & ~E_STRICT & ~E_DEPRECATED);
Abra index.php
e adicione o código ao topo para corrigir Strict Standards.
Deve ser assim:
<?php // Shim to hide errors! error_reporting(error_reporting() & ~E_STRICT & ~E_DEPRECATED); require_once('concrete/dispatcher.php');
Você deseja desativar o relatório de erros ou apenas impedir que o usuário os veja? Normalmente, é uma boa ideia registrar os erros, mesmo em um site de produção.
# in your PHP code: ini_set('display_errors', '0'); # don't show any errors... error_reporting(E_ALL | E_STRICT); # ...but do log them
Eles serão registrados em seu log de sistema padrão ou usarão a error_logdiretive
para especificar exatamente para onde você deseja que os erros Strict Standards ocorram. Contrate o melhor VPS pelo menor preço!