1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

passar valores de variaveis para outras paginas

Discussão em 'Web Development' iniciada por ozma19, 15 de Junho de 2007. (Respostas: 14; Visualizações: 4178)

  1. 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 :)
     
  2. SoundSurfer

    SoundSurfer Power Member

    passa o valor na querystring, ou mete na sessão.
     
  3. 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: 15 de Junho de 2007
  4. Na página nova. Não existe maneira de aceder a variáveis de sessão através do código html que é gerado.
     
  5. BMarques

    BMarques Power Member

    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.
     
  6. 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:
     
  7. BMarques

    BMarques Power Member

    É 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!
     
  8. 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!!!
     
  9. BMarques

    BMarques Power Member

    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.
     
  10. ...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!!!
     
  11. BMarques

    BMarques Power Member

    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.



     
  12. 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 :)
     
  13. 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 :)
     
  14. BMarques

    BMarques Power Member

    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: 21 de Junho de 2007
  15. 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
     

Partilhar esta Página