Ir para conteúdo
Fórum Script Brasil
  • 0

$_GET dentro de $_GET


LucasConstantino

Pergunta

Bom, to precisando fazer algo assim:

"index.php?pagina=pagina.php?id=x&nome=y"

Como vocês podem perceber a sentença se divide em:

A página: "index.php"

O $_GET da página: "pagina=pagina.php?id=x&nome=y", sendo tudo isso o $_GET["pagina"] do index.

Neste caso estou utilizando um iFrame. Dessa forma, o iFrame exibi a pagina "$_GET["pagina"]", e ainda por cima estou incluindo nassa paginas outros valores de $_GET (o ID e o NOME)...

O problema é o seguinte: o primeiro $_GET da subpagina (o "id") funciona perfeitamente... porém o "nome" não pode ser chamado nessa subpagina.

O problema é obvio: a conexão "&" utilizada para se ter mais de um $_GET está sendo interpretada como fazendo parte dos $_GET da página parent. Sendo assim, 2 $_GET estão sendo atribuido a página index.php;

- o $_GET["pagina"], que corresponde a "pagina.php?id=x".

- e o $_GET["nome"], que corresponde a "y".

Meu problema ta no seguinte; já cheguei a conclusão que não posso utilizar o método pra fazer o que preciso... mas então a única solução é transferir os "$_GET"s da página PARENT, ou seja, a index.php, para a página aberta no iFrame, ou seja, a "pagina.php".

Alguém sabe como fazer? Como puxar da página PARENT os $_GETs que ela possui?

Muito obrigado e desculpem pela confusão.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Lucas, não precisa necessáriamente ser assim, você pode passar tudo normalmente com get e depois só junte...

index.php?pagina=x&id=x&nome=x

você poderia fazer assim:

<?

$pagina = $_GET["pagina"];

$id = $_GET["id"];

$nome = $_GET["nome"];

header("Location: $pagina.\"?id=\".$id.\"&nome=\".$nome");

ou se você preferir:

$url = $pagina."?id=".$id."&nome=".$nome;

header("Location: $url");

qlqr coisa posta ai

Editado por Scripter
Link para o comentário
Compartilhar em outros sites

  • 0

Scripter, valeu pela dica cara, mas não posso utilizá-la...

O motivo é simples; a página que abrirá no iFrame não é estática. Ou seja, hora sera uma página sem parâmetros de GET, hora será página com. Sendo assim, eu não posso prever que a página tenha esses parâmetros ou não, em consequência não posso colocar no SRC do iFrame uma junção dos GETs recebidos.

index.php?pagina=pagina.php?id=x&nome=y

O PHP, no que estou criando, está aderindo ao SRC do iFrame o valor que corresponde ao $_GET["pagina"]. No exemplo citado, a página que deveria ser introduzida no iFrame corresponde a "pagina.php?id=x&nome=y"... porém o PHP está lendo (corretamente) o segundo parâmetro, nomeado "nome", como sendo parte dos GETs correspondentes ao "index.php"... meu objetivo era induzir o PHP a perceber que aquele objeto "nome" nada mais é do que parte da sentença definida no objeto "pagina".

Sendo assim, volto a perguntar; alguma forma de puxar um objeto GET de uma parent? Dessa forma eu poderia utilizar os GETs da parent dentro do iFrame...

Link para o comentário
Compartilhar em outros sites

  • 0

ué, cabei de fazer isso que você mesmo propos e deu certinho:

pg1.php

<?

echo "<a href=pagina.php?pagina=x?var=x>Clique</a>";

?>

pagina.php

<?

$var = $_GET["pagina"];

header("Location: $var");

?>

x.php

<?

if(isset($_GET["var"]))

{

echo "Deu certo";

echo "<br>$_GET[\"var\"]";

}

else

{

echo "Não deu";

}

?>

neste caso, a saida é

Deu certo

x

ou seja, é possivel passar $_GET dentro de $_GET, você já havia testado, não é?

Editado por Scripter
Link para o comentário
Compartilhar em outros sites

  • 0

é exatamente isso que você fez... mas faltou uma coisinha só cara: o uso do "&"... e é nele que está dando o problema... no caso eu gostaria de passar mais de um variável para a última página, sem aderila no "header()"... como você fez, modificando da seguinte forma:

pg1.php

<?
echo "<a href=pagina.php?pagina=x?var=x[color="#FF0000"]&var2=y[/color]>Clique</a>";
?>
pagina.php
<?
$var = $_GET["pagina"];
header("Locaton: $var");
?>
x.php
<?
if(isset($_GET["var"]))
{
echo "Deu certo, a variavel 1 passou e é: " . $_GET["var"];
}
else
{
echo "Não deu";
}

if(isset($_GET["var"]))
{
echo "Deu certo, a variavel 2 também passou e é: " . $_GET["var2"];
}
else
{
echo "Não deu certo... a sgunda não passou.";
}
?>

Pronto... dessa forma não funciona! Sim, claro, eu sei o porque e você também: na hora que eu dou "Location: $var", na pagina.php, o $var é igual a "x?var=x" e não "x?var=x&var2=y"... lógico, "&var2=y" esta sendo tratado como $_GET["var2"], e não como pertecente da "var" primeira.

O problema é o seguinte; eu NÃO posso atribuir no Location ambas as variáveis (ficaria fácil colocando header("Location: " . $var . "&var2= . $var2)).

Eis a questão: como posso passar uma segunda variável para a página que será aberta? IMPOSSÍVEL. Por isso que gostaria de saber se posso puxar uma $_GET da página parent do iFrame. Dessa forma eu poderia utilizar a $_GET["var2] vindo da página parent (lembrando que no meu caso não é "header("Location...")" e sim um iFrame), e tudo funcionária normalmente.

Também não gostaria eu de usar $_SESSION ou $_COOKIE...

Alguma solução?

Editado por LucasConstantino
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...