[Script] Video Aula Query String

Seção para postar os scripts das video aulas, e dos membros do forum

[Script] Video Aula Query String

Mensagempor davidchc » Seg Mai 11, 2009 8:22 am

Aqui está função usada da video aula da Query String

Código: Selecionar tudo

<?php
    
    
//CRIA UMA FUNÇÃO
    function QueryString($get, $inicio, $pasta){
            //verifica se $get existe
            $get = (isset($get)) ? $get : '';
            //remove os espaços antes e depois da string
            $get = trim($get);
            //remove tag php e html
            $get = strip_tags($get);
            
            
//verifica se está vazio
            if(empty($get)){
                include("$pasta/$inicio");
            }
            //verifica se existe algum desses caracteres
            elseif(eregi("http|www|.php|.asp|.net|.gif|.exe|.jpg|./", $get)){
                include("$pasta/$inicio");
            }
            //verifica se o arquivo não existe
            elseif(!file_exists("$pasta/$get.php")){
                include("$pasta/$inicio");
            }else{
            //passando pelas verificações, ele dá o include
                include("$pasta/$get.php");
            }
    }
?>


Update da Função

Recebi um email do Flavio Balmant, q apresentava uma notificação no script do query string, caso esteja acontecendo quem estiver o script, basta colocar um & no parametro $get. Mas na hora de usar a função é a mesma maneira.
Se vc estiver usando PHP 5.3 ou superior, tbm poderá causar um erro devido eregi, mas eu modifiquei trocando pelo preg_match, assim não ocorrendo esse problema. (Simplifiquei mais a função)

Código: Selecionar tudo

<?php
         
function QueryString(&$get$inicio$pasta){
                
$get         = (isset($get)) ? strip_tags(trim($get)) : '';
                
$regex       '/(http|www|.php|.asp|.net|.gif|.exe|.jpg|.html|.htm)/i';
                
$paginaHome  =  "{$pasta}/{$inicio}.php";
                
$paginaAtual "{$pasta}/{$get}.php";
                if(empty(
$get) || preg_match($regex$get) || !file_exists($paginaAtual)){
                     include(
$paginaHome);
                  }else{
                    include(
$paginaAtual);
                  }
        }
?>



//chama a função:
Código: Selecionar tudo

<?php
   QueryString
($_GET['pagina'], 'home''arquivos');
?>
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video Aula Query String

Mensagempor hurry » Ter Jul 14, 2009 5:20 pm

davidchc escreveu:Aqui está função usada da video aula da Query String

Código: Selecionar tudo
<?php
   
   //CRIA UMA FUNÇÃO
   function QueryString($get, $inicio, $pasta){
         //verifica se $get existe
         $get = (isset($get)) ? $get : '';
         //remove os espaços antes e depois da string
         $get = trim($get);
         //remove tag php e html
         $get = strip_tags($get);
         
         //verifica se está vazio
         if(empty($get)){
            include("$pasta/$inicio");
         }
         //verifica se existe algum desses caracteres
         elseif(eregi("http|www|.php|.asp|.net|.gif|.exe|.jpg|./", $get)){
            include("$pasta/$inicio");
         }
         //verifica se o arquivo não existe
         elseif(!file_exists("$pasta/$get.php")){
            include("$pasta/$inicio");
         }else{
         //passando pelas verificações, ele dá o include
            include("$pasta/$get.php");
         }
   }
?>


Update da Função

Recebi um email do Flavio Balmant, q apresentava uma notificação no script do query string, caso esteja acontecendo quem estiver o script, basta colocar um & no parametro $get. Mas na hora de usar a função é a mesma maneira, naõ acrescente o &

Código: Selecionar tudo
<?php
   
   //CRIA UMA FUNÇÃO
   function QueryString(&$get, $inicio, $pasta){
         //verifica se $get existe
         $get = (isset($get)) ? $get : '';
         //remove os espaços antes e depois da string
         $get = trim($get);
         //remove tag php e html
         $get = strip_tags($get);
         
         //verifica se está vazio
         if(empty($get)){
            include("$pasta/$inicio");
         }
         //verifica se existe algum desses caracteres
         elseif(eregi("http|www|.php|.asp|.net|.gif|.exe|.jpg|./", $get)){
            include("$pasta/$inicio");
         }
         //verifica se o arquivo não existe
         elseif(!file_exists("$pasta/$get.php")){
            include("$pasta/$inicio");
         }else{
         //passando pelas verificações, ele dá o include
            include("$pasta/$get.php");
         }
   }

//chama a função:
QueryString($_GET['pagina'], 'home.php', 'arquivos');

?>



BY Hurry: La vem a Pergunta!
Eu tenho q criar um function pra cada arquivo novo que eu criar, ou emgloba todos
que estão na raiz tipo, eu inserir as paginas na pasta aquivos ficaria assim (site/arquivos)ok.
Eu posso criar + pastas, exemplo pasta login (site/login) pasta chicoloco (site/chicoloco)
e chamar as funções assim


Código: Selecionar tudo
     //chamar funções://
QueryString ($_GET['pagina'], "home.php", "arquivos") ; /// esta é a que  vc passou na aula////

///tipo eu coloquei assim///
QueryString($_GET['pagina'], "home.php", "./arquivos", "./login", "./chicoloco") ;
///isso incluiria as paginas que estão dentro de ./login  ou ./chicoloco///
     


Porque to querendo colocar o login no site junto com a busca e a querystring
OBS:a pasta /chicoloco é só um exemplo naum temte assessala! :lol:
Eu ia manda tudo isso pro comentario do VAB ai me toquei e postei aqui valeu t+
Pior q to aprendendo já to até fazendo perguntas estupidas. :shock:

hurry
Novo membro
 
Mensagens: 7
Data de registro: Seg Jun 29, 2009 3:23 pm

Re: [Script] Video Aula Query String

Mensagempor davidchc » Ter Jul 14, 2009 6:07 pm

Essa função irá incluir qualquer arquivo, basta coloca-lo na pasta arquivos, e colocar o link usando o mesmo nome da página.
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video Aula Query String

Mensagempor hurry » Ter Jul 14, 2009 8:05 pm

davidchc escreveu:Essa função irá incluir qualquer arquivo, basta coloca-lo na pasta arquivos, e colocar o link usando o mesmo nome da página.

Sim + poderia ser uma pasta ou só um arquivo .php ou html porque em/arquivos temos apenas scripts php .
TIpo na aula de login vc cria uma pasta chamada login os escripts dentro dela + uma pasta chamada restrito
apsear que agora pouco fis isso, inseri no index inicial do site
Código: Selecionar tudo

    <!--form de login-->
       <div class="login">
       <?php
        QueryString($_GET['pagina'], "login.php", "./login");
       ?>          
              <a href="?pagina=cadastrar">Cadastrar</a> </div>
   <!--fim  form de login-->



o retorno foi o formulario em todas as paginas.
seria coreto? :?
mas vo testa como vc disse
hurry
Novo membro
 
Mensagens: 7
Data de registro: Seg Jun 29, 2009 3:23 pm

Re: [Script] Video Aula Query String

Mensagempor omoritz » Seg Ago 17, 2009 10:59 pm

Caros davidchc e hurry,
primeiramente, parabéns pelo script. E como você falou na aula, o mesmo está ai para adaptar e aperfeiçoar conforme nossas necessidades. Bom, enfrentando em um projeto o mesmo problema do Hurry, resolvi do seguinte modo:
No menú, acrescentei mais uma variável, no caso chamei de local e atribui um valor, como abaixo:

<ul>
<li><a href="?pagina=serviços&local=1">Serviços</a></li>
<li><a href="?pagina=galeria&local=2">Galeria</a></li>
</ul>

Com isso, acrescentei no local da div conteúdo o bloco de código abaixo:

<div id="conteudo">
<?PHP

@$local = $_REQUEST['local']; //resgatando a variavel do menu

if ($local == "1" )
{$pasta = "arquivos"; } //definindo o local das pastas, conforme o local no menu
elseif ($local == "2")
{$pasta = "imagem"; }
else {$pasta = "arquivos"; }

QueryString($_GET['pagina'], 'inicial.php', "$pasta"); //coloquei no lugar da pasta, uma variavel que chamará a pasta do arquivo
?>
</div>

Bom, para mim resolveu. Com a mesma função chamo pastas diferentes conforme necessidade. Claro que sempre haverá melhorias. Abraços.
omoritz
Novo membro
 
Mensagens: 1
Data de registro: Seg Ago 17, 2009 10:56 pm

Re: [Script] Video Aula Query String

Mensagempor davidchc » Ter Ago 18, 2009 8:54 am

É assim mesmo omoritz , tem adaptar a função, e melhorá-la de acordo com a sua necessidade, o importante da video aula é a logica como funciona, entendo, fica mais facil adapta-la
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video Aula Query String

Mensagempor Alexader » Sex Ago 21, 2009 8:47 pm

Caros amigos fiz conforme os updadtes de código e funcionou no IE6 mas no firefox 3.5 não esta funcionando. Porque será ?
Alexader
Membro junior
 
Mensagens: 32
Data de registro: Sáb Jul 18, 2009 1:21 pm

Re: [Script] Video Aula Query String

Mensagempor davidchc » Sáb Ago 29, 2009 2:44 pm

Alexader, o código vai funciona em qualquer navegador, pq o q retorna para o navegador é apenas html, o processo de inclusão é feito no servidor, eu fiz outra modificação no código caso alguém tenha instalado o PHP 5.3
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video Aula Query String

Mensagempor linces » Ter Set 15, 2009 1:32 am

Boa noite pessoal,

Estou com o mesmo problema que o pessoal.

Estou usando a função querystring da video aula, no meu site. Agora surgiu a necessidade de dar o include em arquivos de diretórios diferentes. Eu tentei fazer assim:

Código: Selecionar tudo
   <!-- Conteudo - Inicio -->
   <?php
      QueryString($_GET['pagina'], "home.php", $_GET['caminho']);
   ?>
   <!-- Conteudo - Fim -->


E para chamar as páginas fiz assim:

Código: Selecionar tudo
   <li><a href="?pagina=home?caminho=includes">Home</a></li>
      <li><a href="sitemap.php?caminho=scripts">Mapa do site</a></li>


Quando chamo os links assim, aparece a msg:

Warning: include(/home.php) [function.include]: failed to open stream: No such file or directory in /home/storage/4/55/81/endsis/public_html/teste/funcoes/funcao_querystring.php on line 22

Warning: include() [function.include]: Failed opening '/home.php' for inclusion (include_path='.:/usr/share/pear') in /home/storage/4/55/81/endsis/public_html/teste/funcoes/funcao_querystring.php on line 22

A função não ta recebendo o valor da pasta/caminho.

Isso ai é só um exemplo.

To desesperado, alguem poderia me ajudar com a solução?

Obrigado..
linces
Novo membro
 
Mensagens: 3
Data de registro: Seg Set 14, 2009 11:27 pm

Re: [Script] Video Aula Query String

Mensagempor marcelojol » Ter Set 15, 2009 2:51 am

Pessoal pra utilizar o código disponibilizado pelo Davidchc pra buscar arquivos em diferentes pastas basta ir lá na função no comando "eregi" e retirar a exclusão da barra, assim ele vai passar a aceitar a barra no link e vocês vão poder colocar o caminho completo para o arquivo que quiser dar include, não sei se isso oferece risco a segurança do site (acredito que não), mas o Davidchc pode esclarecer isso melhor, blz. Ficaria assim a função:

Código: Selecionar tudo
<?php
   
   //CRIA UMA FUNÇÃO
   function QueryString($get, $inicio, $pasta){
         //verifica se $get existe
         $get = (isset($get)) ? $get : '';
         //remove os espaços antes e depois da string
         $get = trim($get);
         //remove tag php e html
         $get = strip_tags($get);
         
         //verifica se está vazio
         if(empty($get)){
            include("$pasta/$inicio");
         }
         //verifica se existe algum desses caracteres
         elseif(eregi("http|www|.php|.asp|.net|.gif|.exe|.jpg", $get)){
            include("$pasta/$inicio");
         }
         //verifica se o arquivo não existe
         elseif(!file_exists("$pasta/$get.php")){
            include("$pasta/$inicio");
         }else{
         //passando pelas verificações, ele dá o include
            include("$pasta/$get.php");
         }
   }
?>
Seja um usuário consciente - visite o fórum e procure ajudar outros membros com dúvidas.
Sempre que sua dúvida for resolvida assinale o tópico como resolvido(basta editar a primeira mensagem do tópico e acrescentar "resolvido").
Avatar de usuário
marcelojol
Membro avançado
 
Mensagens: 287
Data de registro: Qui Mai 28, 2009 5:48 pm
Localização: Uberaba/MG

Próximo

Retornar para Banco de Scripts (PHP)

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes