passar valores de variaveis para outras paginas

ozma19

Membro
ola. preciso muito de uma ajuda
ja recorri a varios foruns, para resolver o meu problema.

gostava de saber como passo valores das minhas variaveis para outras paginas???
por exemplo eu tenho a variavel $n que tem o valor 14
atenção, que essa variavel esta dentro de um botão submit
quando clico ela passa a ter o valor 14,
mas quando vou aos links da minha pagina, ir a uma pagina nova.
ela volta com o valor zero e tenho de voltar a clicar no botão para ela passar a 14, isso não faz nenhum sentido.
eu queria que ela fosse reconhecida em todas as paginas que tenho.

isto é o meu botão, ele so aparece se a condição for verdadeira

if ($linha_menu_2[14] != "" ){
echo "<form name=\"Form2\" method=\"post\" align=\"center\">
<input type=\"hidden\" value=\"\" id =\"aceite14\" name =\"aceite14\">
<input type=\"button\" name=\"$linha_menu_2[14]\" value=\"$linha_menu_2[14]\" onclick=\"idioma2()\">";

$aceite14 = $n;
}
o onclick chama uma função do javascript

<script language="JavaScript">
function idioma2()
{
document.Form1.aceite14.value = '1';
document.Form1.submit();
}
</script>

depois o que faço é isto, guardar o valor que a função tem numa variavel
do php

$n = @$_POST['aceite13'];

depois faço um if para que a variavel $idioma tenha o valor 14
if ($aceite14 == "1") {
$idioma = 14;
}
basicamente é isso o meu codigo, o que faz é traduzir uma palavra em portugues para ingles.
quando clico no botão, mas la ta>(
quando vou para o link do meu site, e ele vai para uma pagina nova
a palavra volta para portugues!!
eu não sei como fazer, não sei se tenho de trabalhar com cookies ou session, não faço a minima ideia.
se poderes ajudar, agradeço imenso
isso é mesmo urgente. obrigado
aguardo uma resposta :)
 
Penso que com uma session seria melhor
acho que é assim que declaro uma session?
$_SESSION['$n'] = $new;

agora o problema é onde faço a chamada da variavel??

no form que tenho quando clico no botão??

ou a chamada tem de ser feita na pagina nova que estou a abrir??
 
Última edição:
Boas,

O problema que tens acho que não está na passagem das variáveis de uma página para outra, mas sim no facto de não estares a actualizar o form quando voltas à página.

Se tens isto :

<input type=\"button\" name=\"$linha_menu_2[14]\" value=\"$linha_menu_2[14]\" onclick=\"idioma2()\">";

Tás sempre a definir o teu botão como tendo o value $linha_menu_2[14], quando o que querias era que ele tivesse o valor que foi passado da página anterior!! Precisas algo mais do género :

if ($aceite14 == "1")
{
$idioma = 14;
$valor = @$_POST[$linha_menu_2[14]];
}
else
{
$valor = $linha_menu_2[14];
}

E só depois na definição do botão :

<input type=\"button\" name=\"$linha_menu_2[14]\" value=\"$valor\" onclick=\"idioma2()\">";

Desta forma quando chegares ao botão das duas uma :

- Ou entraste agora na página e vai ter o valor de $linha_menu_2[14]
- Ou chegaste à página depois de primido o botão e tens o que vinha na variável da página anterior.
 
não adianta nada fazer dessa maneira
continua a perder o valor quando, clico no link e abre outra pagina.
a logica seria quando clica se no botao, uma variavel guardava o valor 14
e depois quando clicava no link, a nova pagina tinha na mesma variavel o valor 14, em que eu pode se tar a trabalhar com essa variavel(output,somas)
tar a fazer assim :
if ($aceite14 == "1") {
$idioma = 14;
$valor = @$_POST[$linha_menu_2[14]]; }
else {
$valor = $linha_menu_2[14];
}
<input type=\"button\" name=\"$linha_menu_2[14]\" value=\"$valor\" onclick=\"idioma2(14);\">";

é a mesma coisa, quando clico no botao. é guardado na variavel idioma o valor 14
mas quando abro outra pagina, volta a não ter valor....:confused:
 
É verdade que a variável $idioma não se aguentar com o valor 14.

Para esse exemplo mais simples precisas de ter um hidden, como penso que já tens :

<input type=\"hidden\" value=\"14\" name =\"idioma\">

Isto dentro de uma form que faça POST ou GET. Do outro lado tens que ir buscar com :

$idioma = $_POST['idioma']; (se for com um POST, claro)

Espero que isto ajude, se não é pq n estou mesmo a perceber o problema!
 
É verdade que a variável $idioma não se aguentar com o valor 14.

Para esse exemplo mais simples precisas de ter um hidden, como penso que já tens :

<input type=\"hidden\" value=\"14\" name =\"idioma\">

Isto dentro de uma form que faça POST ou GET. Do outro lado tens que ir buscar com :

$idioma = $_POST['idioma']; (se for com um POST, claro)

Espero que isto ajude, se não é pq n estou mesmo a perceber o problema!

nop nop
não pode ser feito dessa forma, não tinha logica nenhuma
assim a variavel tinha sempre o valor 14 clicando ou não no botão
pensei algo deste genero
criar uma cookie:

quando clico no botão $aceite14 tem o valor 1
$aceite14 = @$_POST['aceite14'];

depois faço isto:
if ($aceite14 == "1") {
$idioma = 14;
setcookie("cookie1", $idioma, time()+10800);
}
mas da um erro todo estupido
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Site_Novo2\index2.php:1) in C:\wamp\www\Site_Novo2\index2.php on line 250
fogo!!! o que se passa, ja não tou a perceber nada!!!
 
As cookies enviam informação no header do HTTP... Isso quer dizer que o comando cookie tem que ser invocado logo no inicio da página, antes do primeiro código html.
 
As cookies enviam informação no header do HTTP... Isso quer dizer que o comando cookie tem que ser invocado logo no inicio da página, antes do primeiro código html.

...hummmmm, vou fazer varios teste com ob_start(); para inciar o header, porque um dos erros é Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Site_Novo2\index2.php:1) in C:\wamp\www\Site_Novo2\index2.php on line 274
isto tem de dar certo, eu tenho de conseguir trabalhar com as cookies!!!!!

ou então, devo estar a fazer algo de erra,na criação das cookies
eu tenho a certeza que é assim que define uma cookie:
setcookie("nome", "valor", time()+10800);
falta + alguma coisa???
e na outra pagina como faço a chamada da cookie??
Preciso mesmo que me ajudem, por favor!!!
 
Criar cookie :
setcookie("user", "Alex Porter", time()+3600);

Ler cookie :
echo $_COOKIE["user"];

Podes em alternativa guardar valores na sessão (que a baixo nivel também te vai guardar os valores em cookies.



 
Criar cookie :
setcookie("user", "Alex Porter", time()+3600);

Ler cookie :
echo $_COOKIE["user"];

Podes em alternativa guardar valores na sessão (que a baixo nivel também te vai guardar os valores em cookies.



ok ok, Finalmente ja consigui criar a cookie, e passar os valores para outras paginas e a variavel ser reconhecida.
o codigo esta correcto, o problema tava no header que ja fazia um output.
opah, essa cena não compreendi muito bem,
mas resolvi da seguinte forma:
<?php
ob_start();
?>
coloquei isto, logo no inicio do meu codigo
e consigo trabalhar com as cookies :)
ha ainda alguns bugs, que tenho de resolver
obrigado pela ajuda, foi mesmo importante
agora sim, vou ao link do joguitos fazer uma pausa :)
 
yap, tenho um bug na minha pagina
que so vejo uma maneira de resolver
vou explicar o bug:
quando clico no botão, a variavel guarda o valor 14 no programa.
fiz um echo da cookie e aparece o valor 13.
so quando faço um refresh a pagina, ou volto a clicar no botão
o output apareçe com 14.
o programa esta correcto, porque quando a variavel tem o valor 14 mostra um texto em ingles. é um codigo que tenho na minha pagina e esta correcto.
queria arranjar uma maneira de fazer um auto-refresh a pagina
e a unica solução.
mas não sei como fazer, não tou a conseguir criar uma função que faça isso.
ou deve de existir alguma palavra reservada do php, para o auto-refresh
a logica seria ao clicar no botão fazia um refresh. como se fosse dois ao mesmo tempo.
entendes???
se poderes ajudar.
aguardo resposta :)
 
Suponho que quando fazes echo à cookie e obtens 13 isso seja assim porque foi o valor que definiste na cookie antes de carregar a página actual, certo?

Não percebo exactamente o que estás a tentar fazer mas quer-me parecer que estás a complicar demasiado uma cena que me parece simples. Parece-me que a ideia inicial seria a seguinte :


- Numa página A tens um botão que se for premido deve passar uma certa variável para 14 e mudar para a página B.
- Na página B, se a tal variável for 14, exibes uma mensagem em particular.

É isso?
 
Última edição:
Suponho que quando fazes echo à cookie e obtens 13 isso seja assim porque foi o valor que definiste na cookie antes de carregar a página actual, certo?

Não percebo exactamente o que estás a tentar fazer mas quer-me parecer que estás a complicar demasiado uma cena que me parece simples. Parece-me que a ideia inicial seria a seguinte :


- Numa página A tens um botão que se for premido deve passar uma certa variável para 14 e mudar para a página B.
- Na página B, se a tal variável for 14, exibes uma mensagem em particular.

É isso?

okis
consegui resolver o problema de uma vez por todas!!!!!!!!!
o que estava acontecer na minha pagina, era falta de refresh.
quando eu clicava no botão, a variavel $_cookie["teste"] passa a ter o valor 14.
mas quando entro logo na pagina eu faço em echo de $_cookie["teste"]
e tem 13, porque não cliquei no botão certo.
mas quando clico a variavel passa a ter 14, mas o output continua 13.
para mostrar o valor actual da cookie.
ou tinha de fazer um refresh a pagina, ou voltar carregar no botão.
opah resolvi da seguinte forma, acho que era a unica mesmo
forçar um auto.refresh no codigo php, para actualizar a pagina
então fiz isto:
echo " <META HTTP-EQUIV=Refresh CONTENT=0;>";
claro que fiz as condiçoes, quando clica no botão $_cookie["teste"] = 14
e o auto refresh.
O Problema esta resolvido.
com as dificuldades aprendi a trabalhar muito bem com as cookies :)
olha, queria agradecer a atenção e paciencia.
vou jogar um coto agora. thanks
 
Back
Topo