Arfoo script corrigir php

Arfoo script – corrigir php

Arfoo script é um script em php para fazer um directorio de sites, permite registo de sites, divulgando sites, blogs e até empresas.

Recebi à uns dias um pedido de ajuda para a resolução de um problema no script Arfoo devido à actualização da versão do php em alguns servidores.

Contacto com pedido de ajuda:

Hi, i need a little help, i have a arfoo website and since yesterday i have a php error, see my site here ........... and the category list on the sidebar, your site don't have that problem, did you solved? how?
thanks.
Hanz
hanz-----29@gmail.com

Este script parece ter sido abandonado pelos seus criadores, apesar de ainda estar disponivel para download no site oficial, não tem actualizações à algum tempo, mas mesmo com as várias actualizações da versão do PHP nos servidores, todas as funções que foram desativadas e substituidas não têm prejudicado o script. Até agora.

A versão do PHP 5.4 vem desativar várias funções e substitui-las por outras. Neste caso, como uma das antigas funções ainda é usada pelo script, este gera erros em algumas páginas interrompendo a construção das páginas.

Exemplo do erro:

Arfoo Script -  Erro Php 5.4

A função que me refiro é a ereg_replace , que foi substituida pela preg_replace, apesar da sintaxe destas funções serem semelhantes, tem pontos que diferem provocando erros.

No caso do Arfoo Script, a correção é simples, só necessitará de editar o ficheiro /core/FrontController.php. Veja abaixo onde e o que deve mudar.

Edite o ficheiro e siga para a linha 118 onde vai encontrar o código abaixo

$newTitle = 
    substr( 
        ereg_replace( 
            "\-$", 
            '', 
            ereg_replace( 
                "\-+", 
                '-', 
                strtolower( 
                    ereg_replace( 
                            "[^A-Za-z0-9]", 
                            '-', 
                                   
                            str_replace(
                                $specialChars, 
                                $normalChars, 
                                htmlspecialchars_decode($title)
                                )
                            ) 
                    ) 
                ) 
            ), 
            0, 
            $stringMaxLength
        );  
return $newTitle;

Substitua por este novo código

$newTitle = 
    substr( 
        preg_replace( 
            "/\-$/i", 
            '', 
            preg_replace( 
                "/\-+/i", 
                '-', 
                strtolower( 
                    preg_replace( 
                            "/[^A-Za-z0-9]/i", 
                            '-',                                            
                            str_replace(
                                $specialChars, 
                                $normalChars, 
                                htmlspecialchars_decode($title)
                                )
                            ) 
                    ) 
                ) 
            ), 
            0, 
            $stringMaxLength
        );  
return $newTitle;

O que foi necessário foi corrigir adicionando delimitadores no padrão do texto a pesquisar.

Mudou-se o nome da função, adicionou-se a barra no ínicio / e /i no final.

antes:

ereg_replace( 
     "\-$", 
depois:

preg_replace( 
     "/\-$/i", 

Após a correcção o sistema deverá estar a funcionar normalmente.

Arfoo Script -  Erro Php 5.4 - Corrigido

Apesar de não ter actualizações este script continua a funcionar bem, não se sabe de falhas de segurança nesta versão, é um script gratuito, personalizável e tem funcionalidades que só se encontra em scripts pagos, perante isto penso que é o script ideal para directórios de sites.

Deixe um comentário