LuBoc Posted November 11, 2006 at 12:45 PM Report #63562 Posted November 11, 2006 at 12:45 PM 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
djthyrax Posted November 11, 2006 at 01:53 PM Report #63575 Posted November 11, 2006 at 01:53 PM Talvez global $_GET; no index.php ? Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
LuBoc Posted November 11, 2006 at 02:08 PM Author Report #63583 Posted November 11, 2006 at 02:08 PM 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
shumy Posted November 11, 2006 at 02:16 PM Report #63584 Posted November 11, 2006 at 02:16 PM 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. Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
kingless Posted November 11, 2006 at 02:51 PM Report #63593 Posted November 11, 2006 at 02:51 PM Não sei porquê que declaraste a variavel $var1 e $var2 como globais nao vejo necessidade de as declarar como globais.
djthyrax Posted November 11, 2006 at 03:01 PM Report #63595 Posted November 11, 2006 at 03:01 PM btw, qd queres globalizar 2 variáveis, tens que por um espaço a seguir à virgula 😛 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
kingless Posted November 11, 2006 at 04:17 PM Report #63612 Posted November 11, 2006 at 04:17 PM djthyrax em vez de estares a fazer 2 posts edita o anterior 🙂
LuBoc Posted November 11, 2006 at 07:21 PM Author Report #63644 Posted November 11, 2006 at 07:21 PM 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
djthyrax Posted November 11, 2006 at 07:37 PM Report #63650 Posted November 11, 2006 at 07:37 PM 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? Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
karva Posted November 11, 2006 at 10:28 PM Report #63675 Posted November 11, 2006 at 10:28 PM podes usar as sessions, e depois com um if, verificar as variaveis a que foram os valores, e alterar a session var... Proud LEIC-A@IST student!
kingless Posted November 11, 2006 at 10:30 PM Report #63676 Posted November 11, 2006 at 10:30 PM 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...
LuBoc Posted November 12, 2006 at 01:50 AM Author Report #63732 Posted November 12, 2006 at 01:50 AM 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
shumy Posted November 12, 2006 at 05:38 AM Report #63741 Posted November 12, 2006 at 05:38 AM 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. Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
LuBoc Posted November 12, 2006 at 11:57 AM Author Report #63777 Posted November 12, 2006 at 11:57 AM 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
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now