<?php

/*

Denvolvido por: Vanessa Schissato

nessa_uepa@yahoo.com.br
webmaster@vs-solutions.com

11/12/2005

Descricao: Essa classe tem por funcao validar as paginas vindas pela variavel "pg" da url, antes de serem incluidas na pagina



Essa classe deve ser incluida no arquivo para se usar suas funcoes:

require_once "ValidaPagina.class.inc";



***********************************



Exemplo de Uso:



<?php



        // Paginas validas

        $validas[] = "artigos"; //artigos.php

        $validas[] = "contato"; //contato.php

        $validas[] = "servicos"; //servicos.php



        // Inclui classe

        require_once "ValidaPagina.class.inc";



        // Cria objeto de validacao da pagina para inclusao

        $validacao = new ValidaPagina($_GET['pg'],$validas);



        // Valida pagina

        if($validacao->Verifica()){

            include $validacao->pagina; // Pagina valida incluida

        }else{

            include $validacao->pagina_erro; // Pagina nao valida, inclui pagina de erro

        }



?>



*/



Class ValidaPagina{



    var $pagina;

    var $validas;

    var $host = "http://www.seusite.com/"; /*nome do host *importante para evitar inclusao maliciosa de paginas externas*/

    var $pagina_inicial = "principal"; //principal.php

    var $pagina_erro = "erro404"; // erro404.php



    // Metodo construtor

    function ValidaPagina($pagina,$validas){

        $this->pagina = $pagina;

        $this->validas = $validas;

    }



    /* Verifica validacao da pagina, retornando true se valida ou false se nao-valida e montando a variavel pagina pra ser incluida ou pagina_erro */

    function Verifica(){



        if(!$this->pagina){ // Pagina inicial

            $this->pagina = $this->host.$this->pagina_inicial.".php";

            return true;

        }else{



            // Verifica se pagina na lista

            foreach($this->validas as $valor){

                if($valor == $this->pagina){

                    $ok++;

                break;

                }

            }



            if($ok){

                $this->pagina = $this->host.$this->pagina.".php";

                return true;

            }else{

                $this->pagina_erro = $this->host.$this->pagina_erro.".php";

                return false;

            }

        }

    }

}



?>