Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alexsandro XPT

Estilo de programação de QueryString esquisita, porque é assim?

Recommended Posts

A muitos anos vejo isto e nunca dei importancia, mas hoje estava vendo um programa em PHP e vi novamente. o programa so tem URLs assim:

http://192.168.0.2/crm/index.php?action=in...amp;module=Home

http://192.168.0.2/crm/index.php?module=Op...tion=DetailView

 

e por ai vai... dando a entender q o index.php sempre faz o "redirecionamento". dai me pergunto, pq alguem faria assim? tem alguma razão boa?

 

 

Alguem sabe?

 

Valew...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem vamos dizer o seguinte. você tem um portal com 30 sessões ou seja 30 links. todos gerenciados pelo bd, e todos possuem alguma coisa relacionada a ele.o que você faria. iria criar as 30 páginas com cada 1 com sua consulta ou criaria uma pagina padrão recebendo e tratando essas consultas. no caso. ele criou apenas uma pagina que faz essa consulta e te retorna o resultado.é funcional pq você ocupa menos espaço no servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas putz.... imagina 30 consultas/tratamentos em um unico arquivo vai ser uma verdadeiro problema pra dar manutençao, você nao acha?Valew...

bem vamos dizer o seguinte. você tem um portal com 30 sessões ou seja 30 links. todos gerenciados pelo bd, e todos possuem alguma coisa relacionada a ele.o que você faria. iria criar as 30 páginas com cada 1 com sua consulta ou criaria uma pagina padrão recebendo e tratando essas consultas. no caso. ele criou apenas uma pagina que faz essa consulta e te retorna o resultado.é funcional pq você ocupa menos espaço no servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade se faz uma consulta e filtro(s) para links que com mesma realação de conteúdos,para conteudos diferente o bom mesmo é ciar uma nova pagina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é bom para criar sistemas integrados e/ou modulares.dentro da index.php é feito as chamadas pra funções, constantes e um switch case que inclui o arquivo adequado pra sessão, de acordo com os dados da querystringisso facilita a manutenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilizo isso para manter o mesmo layout na pagina, altera apenas a parte central, sei que o correto seria ajax, porem com php é muito mais simples para sistema modularesabraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhmmm.. sistemas integrados e/ou modulares...

 

Pois é.. este sistema ai q eu postei o link é modular....

 

 

Onde eu posso estudar esta metodologia?

 

 

Eu estou no começo de um projeto, e tenho um monte de informação em mente de como fazer e preciso escolher a metodolia correta se é que vcs me entendem...

 

 

 

 

 

Valew galera.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade nao existe uma metodologia nisso. é questão de estilo do programador ou padronização de uma empresa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

imagina se cada post desse forum fosse um arquivo diferente? o url seria assim:forum.imasters.com.br/topicos/nomeDoTopico.phpmas isso seria o fim do servidor, pois ele teria mais de 200.000 páginas diferentes no pasta topicos, e isso não é nada bom não é mesmo?agora, se todos os topicos têm um padrao (ou seja, o mesmo conjunto de informacoes), porque não criar um padrao para a consulta? é o que acontece, veja o link acima:forum.imasters.com.br/index.php?showtopic=247363assim ele vai usar a pagina index para mostrar todos os mais 200.000 topicos diferentes com apenas uma única página.se voce está criando um projeto, comece separando o que voce pode padronizar e o que voce não pode.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para tudo.. :PO exemplo que você deu é claro q ta está exatamente correto e não se discute.O exemplo q eu dei é como se fosse assim:Imagina:http://www.imasters.com.br/index.php abre o portal imastershttp://www.imasters.com.br/index.php?modul...p;action=247363viu a diferença? assuntos diferentes e é o mesmo script php. Foi assim o meu exemplo.. imagina, tudo vai ficar como este exemplo abaixo:http://www.imasters.com.br/index.php?module=contatohttp://www.imasters.com.br/index.php?modul...&action=faqhttp://www.imasters.com.br/index.php?module=lojaviu? este script vai virar uma bagunça pra da manutençaoO que achas?Valew pela atençao...

imagina se cada post desse forum fosse um arquivo diferente? o url seria assim:forum.imasters.com.br/topicos/nomeDoTopico.phpmas isso seria o fim do servidor, pois ele teria mais de 200.000 páginas diferentes no pasta topicos, e isso não é nada bom não é mesmo?agora, se todos os topicos têm um padrao (ou seja, o mesmo conjunto de informacoes), porque não criar um padrao para a consulta? é o que acontece, veja o link acima:forum.imasters.com.br/index.php?showtopic=247363assim ele vai usar a pagina index para mostrar todos os mais 200.000 topicos diferentes com apenas uma única página.se voce está criando um projeto, comece separando o que voce pode padronizar e o que voce não pode.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tenho certeza mas pelo que voce esta mostranto, acredito que seja, o seguinte:acredito que você conheça pagina com frames onde todas as paginas do site abre em um determinado frame. Ok.e os links acimas devem esta sendo usados desta forma, talvez não com frames, mas através de includes,ou seja, as paginas de scripts são paginas distintas da index.php, apenas incluidas quando são chamadas através doslinks. exemplo: if ($module=="contato") { include "contato.php";}elseif ($module=="contato") { include "loja.php";}elseif ($module=="contato") { include "faq.php";}ou seja, o fato dos links estarem apontando todos para o mesmo destino, não quer dizer que todo o escript dosmesmo encontram-se no index. Eles são apenas inlcuidos conforme condições acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

alexandre, qual seu nivel de conhecimento em programação ?como o pessoal aí já comentou, essa tecnica serve justamente pra diminuir trabalho e otimizar a manutençãoos scripts nao ficam todos numa só página. é feito um include para outros arquivos.veja o exemplo do pcdesign.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, e normalmente, index.php é a pagina que contém menos códigos no site.porque normalmente os programadores usam o index.php para definir o layout do site, e usam os links do url para saber oque ele vai mostrar. atravez dos includes como foi dito acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uhmm entendi vai na base dos includes mesmo com um monte de if ne..Não se trabalho assim..... alguem sabe os contras de trabalhar assim?Hinom, eu tenho programado com ASP uns anos e outras linguagens tb.. estes dias estou pesando seriamente migrar pra PHP por ter muita gente na NET q tb trabalha com PHP e o PHP ter varios recursos pra Web 2.0 assim acredito q sempre vou encontrar pessoas pra trocar ideias.Logo vou fazer um projeto, vou usar PHP, por isto vira e mexe eu venho aki no forum e posto uma duvida... estou fazendo pesquisas para fazer um bom trabalho. entendeu? eu tenho algumas duvidas, tais como usar Framework como CafePHP ou Zend Framework e parece q pra mim hoje eu me perdiria se usar, tenho algunas duvidas sobre usar SQL Server no PHP por causa do suporte a Collation e outra duvida grande q vou perguntar logo é sobre o CharSet viu.. este ta osso.. :PValew galera...

sim, e normalmente, index.php é a pagina que contém menos códigos no site.porque normalmente os programadores usam o index.php para definir o layout do site, e usam os links do url para saber oque ele vai mostrar. atravez dos includes como foi dito acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não se trabalho assim..... alguem sabe os contras de trabalhar assim?

sinceramente nao vejo nenhuma desvantagem.quando comecei a desenvolver desse modo eu pensava que o servidor daria alguma pane por causa do constante carregamento de uma mesma página. Mas tb nao tem nada a ver.quanto as suas pretensões. ok . agora entendo.tb vim do ASP, mas há 5 anos atrás. É uma excelente linguagem mas peca em muitos pontos. O que me impedia de desenvolver aplicativos é o fato da linguagem não ter codigo aberto e a maioria dos compnentes tb não são gratuitos.para suas duvidas em relação ao charset, sugiro que pesquise no forum pois existem muitas duvidas a respeito disso.é uma questão um pouco complicada de se diagnosticar um problema porque depende de diversos fatores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi.. mas mesmo assim to com medo em arriscar em trabalhar assim, tenho vistos Gmail, Orkut e outros sites q nao usam isto mais. não pq. devem ter um motivo. você sabe? :PMas voltando a falar.... sobreTem uns 7 anos que mexo com ASP resolvi recentemente em investir no PHP, tentei com ASP.net mas nao gostei muito, pq as vezes quis fazer certas coisas que fazia com ASP e nao consegui e ate aprender ja vai passar muitooo tempo mas em PHP eu ja levo jeito por ser a mesma sematica e entao escolhi o PHP.E como vim do ASP nao poderia deixar de levar junto o SQL Server, dai por isto que vou usar o PHP no IIS com SQL Server e vou ter que aprender este negocio de CharSet, mas bom isto vou postar minhas duvidas em outro post e em outra hora...Quanto ao ASP eu sempre gostei dele e ainda gosto, , eu cheguei até a criar uma framework que ajudava muito meu trabalho, mas como ninguem mais investe em nada pra ele como Frameworks, trantamento de ChartSet pra trabalhar com Ajax, dai então resolvir abandonar..... :PValew pela atenção hinom ;)

Não se trabalho assim..... alguem sabe os contras de trabalhar assim?

sinceramente nao vejo nenhuma desvantagem.quando comecei a desenvolver desse modo eu pensava que o servidor daria alguma pane por causa do constante carregamento de uma mesma página. Mas tb nao tem nada a ver.quanto as suas pretensões. ok . agora entendo.tb vim do ASP, mas há 5 anos atrás. É uma excelente linguagem mas peca em muitos pontos. O que me impedia de desenvolver aplicativos é o fato da linguagem não ter codigo aberto e a maioria dos compnentes tb não são gratuitos.para suas duvidas em relação ao charset, sugiro que pesquise no forum pois existem muitas duvidas a respeito disso.é uma questão um pouco complicada de se diagnosticar um problema porque depende de diversos fatores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fmzquanto a isso,

Entendi.. mas mesmo assim to com medo em arriscar em trabalhar assim, tenho vistos Gmail, Orkut e outros sites q nao usam isto mais. não pq. devem ter um motivo. você sabe? :P
como mencionei logo acima, é questao de estilo do desenvolvedor. pode ser que o gmail tenha trocado a equipe de desenvolvedores.você deve saber como funciona numa empresa com muitos programadores. cada um tem estilo.particularmente prefiro o estilo enxuto que impede avisualização das variaveis por exemplo]gmail:

/ServiceLogin?service=mail&passive=true&rm=fals...

só de olhar a url eu já sei as variaveis que estao sendo usadas no programa. isso é um fator de risco.eu prefiro fazer algo no estilo:/ServiceLogin?s=55GFDRT56ytty456tr56l546dentro desse "55GFDRT56ytty456tr56l546" contem os mesmos dados que "service=mail&passive=true&rm=fals.." só que de uma forma codificada. isso garante maior segurança ao sistema, principalemnte se for sistema pra internet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ohhhhh :blink: cara, este estilo que você gosta é bom demais... como você codifica a querystring? acredito eu que existe um metodo antigo q faz isto... nas nao sei o nome... eu iria fazer isto uma vez atravez de uma codificaçao feita por mim mas nao tentei me arriscar por encontrar problemas no futuro..Mas me conta ai o nome do metrodo pra eu prcurar entender como faz esta codificaçao... eu axo tb muito boa segurança.Valew Hinom

gmail:

/ServiceLogin?service=mail&passive=true&rm=fals...

só de olhar a url eu já sei as variaveis que estao sendo usadas no programa. isso é um fator de risco.eu prefiro fazer algo no estilo:/ServiceLogin?s=55GFDRT56ytty456tr56l546dentro desse "55GFDRT56ytty456tr56l546" contem os mesmos dados que "service=mail&passive=true&rm=fals.." só que de uma forma codificada. isso garante maior segurança ao sistema, principalemnte se for sistema pra internet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar base64_encode

 

primeiramente você deve criar uma estrutura de links que utilize apenas 1 parâmetro

 

por exemplo

 

site.com/?s=4.5.7.8

 

cada ., representa um parâmetro. Os parâmetros ficam invisíveis ao olho do usuário, dentro da página que processa a url

nesse caso a index.php

 

PHP
<?php

 

        function somente_numeros($valor){

                $s = "";

                for($n=0;$n<strlen($valor);$n++){

                        $ch=substr($valor,$n,1);

                       

                        if (ord($ch)>=48 && ord($ch)<=57){

                        $s .= $ch;

                        }

                }

                return $s;

        }

 

function GET_POST( $vv, $n = false ){

    $$vv = false;

    if( isset( $_POST[$vv] ) ){

    $$vv = $_POST[$vv];

    }

 

    if( !$$vv || $n ){

        if( isset( $_GET[$vv] ) ){

        $$vv = $_GET[$vv];

        }

    }

 

return $vv;

}

 

$er   = true;

$sp   = '.'; // separador

$vv   = 's'; // nome do parametro

$$vv = GET_POST( $vv ); // requisita GET ou POST

 

if( !$s ){

   // valor false...

}else{

   // valor true. verificar a quantidade de separadores e validar os dados

 

  $s = '.' . $s; // adiciona '.' no começo da string

  $sv = explode( $sp, $s );

 

  if( is_array( $sv ) ){

    // formou um array. fazer validacao dos dados à partir do índice 1, até o final

 

    $st = count( $sv );

 

    // fazer o tratamento basico, verificando se os dados são somente numeros. caso contrario, o parametro será invalido.

    for( $i = 1; $i < $st; $i++ ){

      $v = somente_numeros( $sv[ $i ]  );

       if( $v == '' ){

         $v = 1;

         $sv[$i] = false;

       }else{

       $er   = true;

       }

    }

 

  }else{

    // false. nao formou um array.

  }

 

}

 

// primeiro level. índice 1 do array $sv

$paginas[1] = 'principal.inc.php';

$paginas[2] = 'noticias/index.inc.php';

$paginas[3] = 'eventos/index.inc.php';

$paginas[4] = 'consultas/index.inc.php';

 

$id = 1;

if( isset( $sv[$id] ) ){

 

 if( isset( $paginas[ $sv[$id] ] ) ){

    if( @require( $paginas[ $sv[$id] ] ) {

     // daqui pra frente continua o processamento das outras páginas

    }else{

    // erro, pagina nao encontrada. " arquivo nao encontrado no servidor "

    }

 }

 

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacana......Depois vou testa-la....Axo da pra fazer uma classe disto... dai vai ser bom demais.. oque achas? se é q ja nao tem por ai..Qual nome desta tecnica?So Lembrando, esta tecnica converte.Ex.:teste.php?id_produto=341&id_contato=4441&tipo=1parateste.php?s=6s5df41sd6571v65sdf7v1xcf7yCorreto?valew..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.