• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

LuBoc

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

14 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes usar as sessions, e depois com um if, verificar as variaveis a que foram os valores, e alterar a session  var...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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