Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

LuBoc

Passar valor de variáveis entre ficheiros (GET ou POST) !

Mensagens Recomendadas

LuBoc    1
LuBoc

Olá grande comunidade,

Venho aqui pedir a vossa opinião/explicação para situação relacionada com a passagem de parâmetros entre ficheiros .PHP

Imaginem que têm num ficheiro isto:

Ficheiro: index.php

<?php
global $var1,$var2; 

$var1 = 1;
$var2 = 2;

include("lervar.php");

?>

Agora, no outro ficheiro temos:

Ficheiro lervar.php

<?php
global $var1,$var2; 

$var1=$_GET["var1"];
$var2=$_GET["var2"];

echo "valor 1: $var1 <br>";
echo "valor 2: $var2";
echo "<p>";
echo "<a href=\"lervar.php?var1=11\">Novo var1</a> | <a href=\"lervar.php?var2=22\">Novo var2</a>";

?>

Quando chamamos o index.php, veremos o valor do var1 e do var2, e dois links para os novos valores dos mesmos. Quando se clica num desses links (que chama somente o lervar.php) obtemos só o valor de um deles e não dos dois!

Aguém tem uma solução de ter as variáveis "globais" e que usando GET's se consiga passar as duas variáveis.

Nota: Sei que poderia colocar no link as duas variáveis, mas imaginem que são 5, 10, 20, etc... a ideia seria só passar aquela que foi alterada.

Agradeço as vossas opiniões/dicas sobre esta matéria.

Cumprimentos,

LuBoc

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LuBoc    1
LuBoc

Olá,

Obrigado pela resposta djthyrax pela resposta, mas $_GET já é um variável global do sistema, por isso, não terá influência essa instrução.

Cumprimentos,

LuBoc

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
shumy    17
shumy

Evidente que só apanhas uma variavel, só tas a passar uma. Se queres os valores entre chamadas, tens de os guardar, em $_SESSION por exemplo. 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LuBoc    1
LuBoc

Olá,

Agradeço as vossas respostas....

Evidente que só apanhas uma variavel, só tas a passar uma. Se queres os valores entre chamadas, tens de os guardar, em $_SESSION por exemplo. 

Sim, eu sei que estou a passar uma só variável no Link, era para saber se alguém tinha uma forma de o fazer sem estar a passar mais sem declarar nesse link. A sugestão que dás é o $_SESSION, também penso que é uma forma de o fazer, assim como num POST.

Não sei porquê que declaraste a variavel $var1 e $var2 como globais nao vejo necessidade de as declarar como globais.

Sim, se ficarmos por este exemplo claro que não é necessário.

btw, qd queres globalizar 2 variáveis, tens que por um espaço a seguir à virgula :)

Não creio! Se tiveres alguma documentação sobre isso, por favor indica-me... obrigado.

============

Mas em relação à minha questão inicial: não existe nenhuma forma de simular um GET como se fosse um SESSION ou POST ?

Uma forma de passar, via link, uma variável alterada e a(s) outra(s) manterem o seu valor, sem estar a referi-las no link.

Um nota: nas definições do PHP, a directiva register_globals não está activa.

Vi também isto:

$GLOBALS ... citando «é um array associativo onde o nome da variável global é a chave do array e o seu conteúdo da variável como o valor do elemento do array. $GLOBALS existe em qualquer escopo, isto porque $GLOBALS é uma superglobal. »

Mas não dá para o pretendido.

Cumprimentos,

LuBoc

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
djthyrax    11
djthyrax

Cmg o script crash se meter $var,$var2 mas se meter $var, $var2 já n crasha.

qt à 1ª questão,

$_POST['balh']=$_GET['balh'];

? btw, conheces o $_REQUEST?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
kingless    0
kingless

Já a muito tempo que ando com preguiça de ajudar os usuarios lool este fim de semana vou me dedicar a ajudar... :)

Como assim simular um GET como se fosse um SESSION ou POST ?  Explica lá melhor...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LuBoc    1
LuBoc

Olá,

Como assim simular um GET como se fosse um SESSION ou POST ?  Explica lá melhor...

É mais ou menos isto:

Para um GET podes usar um link, p.e., <a href="ficheiro.php?op=1&var=2">Link</a>

que depois em "ficheiro.php" vais ler as variáveis "op" e "var"

Imagina que em vez de teres duas variáveis, tens "n" variáveis.. passar num link é chato.

Mas num POST tu consegues passá-las usando um <FORM>...</FORM>, acontece que dá mais trabalho fazer isso.

Imagina ter uma solução que através de um Link consegues passar as "n" variáveis, indicando no Link somente as variáveis que foram modificadas e as outras também seriam passadas sem nessidade de fazer referência a elas.

Uma indicação para isso é, como referido, o POST ou o SESSION mas...

será que existe uma alternativa a isso?

será que usando veriáveis "superglobais" se consegue?

ou colocar numa variável do tipo array todas as variáveis existentes?

Eu não sei se existe alguma forma, talvez nem exista, isto seria mais um exercício de analise / programação.

Cumprimentos... e obrigado uma vez mais.

LuBoc

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
shumy    17
shumy

Mas que raio de relação existe enre o SESSION e o POST/GET!! As variaveis vêm no get ou no post, se as quiseres guardar para o proximo request tens de a por em algum lado como na variavel SESSION. Se queres passar só a variavel em que fiseste alterações tudo bem, mas tens de a comparar com os valores anteriores, e esses tem de estar guardados em uma variavel que se mantenha entre requests.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LuBoc    1
LuBoc

Olá, bom dia,

Mas que raio de relação existe enre o SESSION e o POST/GET!! As variaveis vêm no get ou no post, se as quiseres guardar para o proximo request tens de a por em algum lado como na variavel SESSION. Se queres passar só a variavel em que fiseste alterações tudo bem, mas tens de a comparar com os valores anteriores, e esses tem de estar guardados em uma variavel que se mantenha entre requests.

Sim, eu sei isso... mas o que estava a comentar/discutir seria uma outra forma de o fazer caso fosse possível. A situação do modo como a escrevi é ainda algo "imaginário" visto não existir, razão pela qual indiquei que é um exercício de análise/programação de modo a ver se era possível fazer algo do pretendido. Seria uma "nova" forma de passar variáveis entre "requests".

Mas no fundo, resumido as mensagens colocadas, o melhor no caso exposto é usar o SESSION.

Fiquem bem e um bom Domingo.

Cumprimentos,

LuBoc

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade