..:: MX Studio Fóruns ::..: Query String - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Query String

#1 User is offline   NoP 

  • Group: Membros
  • Posts: 99
  • Joined: 28-June 04

Posted 28 June 2005 - 09:34 AM

Fala pessoal, blz?
Seguinte, to fazendo um site e estou usando query strings nele. Então fiz o seguinte:

Terá um menu principal, onde ficará somente assim:
www.site.com.br/index.php?act=diretorias

Dentro da página de diretorias, terão os links para cada diretoria, deixando o link assim no final:
www.site.com.br/index.php?act=diretorias&cat=financeira

A primeira parte (www.site.com.br/index.php?act=diretorias) consegui fazer. Porém não estou entendendo muito bem a lógica para fazer a segunda parte (www.site.com.br/index.php?act=diretorias&cat=financeira). Alguém por favor poderia me dar um exemplo de como fazer isso?

Vlw ^^

**********************
Edit
**********************
Fala sério, informática tá muito fácil, vou começar a trabalhar com medicina agora haahahha

Consegui resolver, vlw biggrin.gif
0

#2 User is offline   Firemaster 

  • Group: Membros
  • Posts: 1410
  • Joined: 14-September 04

Posted 28 June 2005 - 12:16 PM

Depende de com você está montando o script, se está usando includes e outros tipos de recursos. Mas usando a simples lógica das estruturas condicionais você resolve isso tranquilamente. Veja um exemplo:

PHP
<?php

$act
= $_GET['act'];
$cat= $_GET['cat'];

if (
$act == 'diretorias') {
    if (
$cat == 'financeira') {
    } else if (
$cat == 'controladoria') {
    } else if (
$cat == 'almoxarifado') {
    } else {
   }
} else if (
$act == 'subdiretorias') {
    if (
$cat == 'financeira') {
        
    } else if (
$cat == 'controladoria') {
    } else if (
$cat == 'almoxarifado') {
    } else {
   }
}
?>


Você pode usar também SWITCH, caso tenha muitos IF e ELSE.

PHP
<?php

$act
= $_GET['act'];
$cat = $_GET['cat'];

switch (
$act) {
    case
'diretorias':
        print
'acao';
        break;

    case
'subdiretorias':
         print
'acao';
        break;
}

?>


Enfim, são várias opções, depende de como você está construindo o seu script e como vai usar essa lógica. Pode usar funções, estruturas do jeito que você quiser.

[]'s
0

#3 User is offline   Alexandre Silva 

  • Group: Membros
  • Posts: 31
  • Joined: 20-April 05

  Posted 28 June 2005 - 02:28 PM

Cara, tudo bem? vou postar aki a forma que eu conheço, é muito simples, e fácil de alterar...


Seguinte, crie uma arquivo com o nome query.php, lá ficará todo as seções do site.

Cole o seguinte código:

PHP
<?
@$categoria = $_REQUEST['categoria'];
@
$sub = $_REQUEST['sub'];
?>

<?php
if ($categoria == "" && &#33;$sub) {
$pagina = "main.php"; //main.php é o nome da página principal (não é a index!)
}
elseif (
$categoria == "asp" && &#33;$sub) {
$pagina = "asp.php"; //asp.php é o arquivo que contem as
                              //categorias da seção "asp"
}
elseif (
$categoria == "asp" && $sub == "tutoriais") {
$pagina = "asp/tutoriais.php"; //Suponhamos que a seção "asp" tenha uma
                                           //sub-seção "tutoriais"
}
?>




Bom, prontinho, na sua index, vc tem que dar um comando para chamar a query.php, então, cole o código abaixo na primeira linha ta tua index...

PHP
<?php include "query.php" ?>//


Pronto, ainda na tua index, vc cola o código abaixo( cole na parte que vai ficar o contúdo).

PHP
<?
if( (isset($pagina)) and (file_exists($pagina)) ) {
include(
$pagina);
} else {
echo
"<br><b>Página solicitada não existente.<br><a href=\"javascript:history.back();&#092;">Voltar</a></b>";
}
?>



Os links ficam assim:

<a href="?categoria=html">HTML</a>
<a href="?categoria=html&sub=servidores">Servidores HTML</a>



ahhhhhhhhhh, se vc quiser mais seções, tipo assim: ?categoria=asp&sub=tutoriais&pg=2, é so fazer o seguinte:


PHP
elseif ($categoria == "asp" && $sub == "tutoriais" && $pg == "2") {
$pagina = "asp.php"; //asp.php é o arquivo que contem as
                             //categorias da seção "asp"
}



antes disso vc coloca lá no começo do code query.php

PHP
@$pg = $_REQUEST['pg'];



só que para dar certo vc tem que adicionar !$pg em todos os links q nao irao conter pg=2 :
por ex:

PHP
elseif ($categoria == "html" && $sub == "tutoriais" && !$pg) {
$pagina = "html.php";
elseif ($categoria == "asp" && $sub == "tutoriais" && $pg == "2") {
$pagina = "asp.php";




não posso esquecer que aprendi com PDIONLINE!!! valew!!!
0

#4 User is offline   Firemaster 

  • Group: Membros
  • Posts: 1410
  • Joined: 14-September 04

Posted 28 June 2005 - 03:27 PM

QUOTE(Alexandre Silva @ 28/6/2005 13:06:45)
Cara, tudo bem? vou postar aki a forma que eu conheço, é muito simples, e fácil de alterar...


Seguinte, crie uma arquivo com o nome query.php, lá ficará todo as seções do site.

Cole o seguinte código:

PHP
<?
@$categoria = $_REQUEST['categoria'];
@
$sub = $_REQUEST['sub'];
?>

<?php
if ($categoria == \"\" && &#33;$sub) {
$pagina = \"main.php\"; //main.php é o nome da página principal (não é a index!)
}
elseif (
$categoria == \"asp\" && &#33;$sub) {
$pagina = \"asp.php\"; //asp.php é o arquivo que contem as
                              //categorias da seção \"asp\"
}
elseif (
$categoria == \"asp\" && $sub == \"tutoriais\") {
$pagina = \"asp/tutoriais.php\"; //Suponhamos que a seção \"asp\" tenha uma
                                           //sub-seção \"tutoriais\"
}
?>



Bom, prontinho, na sua index, vc tem que dar um comando para chamar a query.php, então, cole o código abaixo na primeira linha ta tua index...

PHP
<?
@$categoria = $_REQUEST['categoria'];
@
$sub = $_REQUEST['sub'];
?>

<?php
if ($categoria == \"\" && &#33;$sub) {
$pagina = \"main.php\"; //main.php é o nome da página principal (não é a index!)
}
elseif (
$categoria == \"asp\" && &#33;$sub) {
$pagina = \"asp.php\"; //asp.php é o arquivo que contem as
                              //categorias da seção \"asp\"
}
elseif (
$categoria == \"asp\" && $sub == \"tutoriais\") {
$pagina = \"asp/tutoriais.php\"; //Suponhamos que a seção \"asp\" tenha uma
                                           //sub-seção \"tutoriais\"
}
?>


Pronto, ainda na tua index, vc cola o código abaixo( cole na parte que vai ficar o contúdo).

PHP
<?
@$categoria = $_REQUEST['categoria'];
@
$sub = $_REQUEST['sub'];
?>

<?php
if ($categoria == \"\" && &#33;$sub) {
$pagina = \"main.php\"; //main.php é o nome da página principal (não é a index!)
}
elseif (
$categoria == \"asp\" && &#33;$sub) {
$pagina = \"asp.php\"; //asp.php é o arquivo que contem as
                              //categorias da seção \"asp\"
}
elseif (
$categoria == \"asp\" && $sub == \"tutoriais\") {
$pagina = \"asp/tutoriais.php\"; //Suponhamos que a seção \"asp\" tenha uma
                                           //sub-seção \"tutoriais\"
}
?>


Os links ficam assim:

<a href="?categoria=html">HTML</a>
<a href="?categoria=html&sub=servidores">Servidores HTML</a>



ahhhhhhhhhh, se vc quiser mais seções, tipo assim: ?categoria=asp&sub=tutoriais&pg=2, é so fazer o seguinte:


PHP
<?
@$categoria = $_REQUEST['categoria'];
@
$sub = $_REQUEST['sub'];
?>

<?php
if ($categoria == \"\" && &#33;$sub) {
$pagina = \"main.php\"; //main.php é o nome da página principal (não é a index!)
}
elseif (
$categoria == \"asp\" && &#33;$sub) {
$pagina = \"asp.php\"; //asp.php é o arquivo que contem as
                              //categorias da seção \"asp\"
}
elseif (
$categoria == \"asp\" && $sub == \"tutoriais\") {
$pagina = \"asp/tutoriais.php\"; //Suponhamos que a seção \"asp\" tenha uma
                                           //sub-seção \"tutoriais\"
}
?>



antes disso vc coloca lá no começo do code query.php

PHP
<?
@$categoria = $_REQUEST['categoria'];
@
$sub = $_REQUEST['sub'];
?>

<?php
if ($categoria == \"\" && &#33;$sub) {
$pagina = \"main.php\"; //main.php é o nome da página principal (não é a index!)
}
elseif (
$categoria == \"asp\" && &#33;$sub) {
$pagina = \"asp.php\"; //asp.php é o arquivo que contem as
                              //categorias da seção \"asp\"
}
elseif (
$categoria == \"asp\" && $sub == \"tutoriais\") {
$pagina = \"asp/tutoriais.php\"; //Suponhamos que a seção \"asp\" tenha uma
                                           //sub-seção \"tutoriais\"
}
?>



só que para dar certo vc tem que adicionar !$pg em todos os links q nao irao conter pg=2 :
por ex:

PHP
<?
@$categoria = $_REQUEST['categoria'];
@
$sub = $_REQUEST['sub'];
?>

<?php
if ($categoria == \"\" && &#33;$sub) {
$pagina = \"main.php\"; //main.php é o nome da página principal (não é a index!)
}
elseif (
$categoria == \"asp\" && &#33;$sub) {
$pagina = \"asp.php\"; //asp.php é o arquivo que contem as
                              //categorias da seção \"asp\"
}
elseif (
$categoria == \"asp\" && $sub == \"tutoriais\") {
$pagina = \"asp/tutoriais.php\"; //Suponhamos que a seção \"asp\" tenha uma
                                           //sub-seção \"tutoriais\"
}
?>




não posso esquecer que aprendi com PDIONLINE!!! valew!!!
View Post



Essa sua forma é válida, mas não recomendável, por segurança, pelas técnicas de 'injection', onde o nome da página a ser inclusa é passada por url. Alguém mais esperto por invadir o seu servidor ou danificar algum setor com esta técnica.

Fica a dica.

[]'s
0

#5 User is offline   Alexandre Silva 

  • Group: Membros
  • Posts: 31
  • Joined: 20-April 05

Posted 28 June 2005 - 04:55 PM

Iii cara, não sabia dessa, tem como me passar um jeito mais seguro aê???



valew!!! thumbup.gif thumbup.gif thumbup.gif thumbup.gif thumbup.gif thumbup.gif thumbup.gif thumbup.gif
0

#6 User is offline   Firemaster 

  • Group: Membros
  • Posts: 1410
  • Joined: 14-September 04

Posted 28 June 2005 - 05:55 PM

Não incluir os arquivos de acordo com o nome passado por url, já é um bom começo. thumbsup.gif

[]'s


0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




2 User(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)