Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiapo

[Resolvido] Passagem de valor entre páginas

Recommended Posts

Pessoal,

 

Tenho uma página em PHP onde, ao clicar em um botão, aciono via JQUERY um outro documento que acessa o banco de dados e me retorna um número. Exibo este número para o usuário via alert. Ao clicar no ok do alert, preciso transferir este valor gerado para a próxima página. Para chamar este pŕoxima página, aciono o location.href.

 

Pensei em trabalhar com sessão. Porém, se o usuário abrir duas janelas da aplicação, não poderá ocorrer problemas, onde as duas páginas receberiam o mesmo valor? Existe uma outra forma de passar este valor sem ser por sessão?

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

por query string?

por cookie?

Compartilhar este post


Link para o post
Compartilhar em outros sites

William,

 

Não posso passar este parâmetro por query string por questão de segurança.

 

Agora por cookie eu nunca implementei. Trabalhando com ele, posso ter problemas com duas páginas tendo o mesmo valor?

 

Obrigada!

 

por query string?

por cookie?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Avelino,

 

O problema da sessão é que, se o usuário abre mais de uma janela, e damos um refresh na primeira tela que temos o valor, este valor é atualizado com o valor mais recente e isto não pode acontecer.

 

Existe alguma forma deste problema não acontecer ou passar este valor via javascript (passagem de valor entre forms)?

 

Pois não posso sobrepor os valores.

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se eu passar este valor via query string mas criptografando com BASE64, terei problemas com segurança?

Depende, se eu ver por exemplo, uma vez que eu conheço a função, poderia copiar a parte da URL e usar base64_decode para ver o que gerou... melhor você usar o session ou md5... como a função md5() não tem decodificação, você teria que salvar os valores também em md5 para uma comparação de igual para igual, mais prefiro session

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte,

 

Também acho melhor a sessão, mas tenho este problema que considero grave.

 

Eu tenho que permitir que o usuário abra mais de uma janela da mesma página. Se eu der refresh na página anterior, vou atualizar com o valor da sessão da nova janela.

 

Como faço para que o meu número seja único por janela?

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

VEja:

 

Atribua o nome da página de teste.php

 

Agora abra o navegador e digite na barra de endereços:

 

teste.php?acao=1

 

irá aparecer o número 1 na tela ou qualquer outra coisa que digitar após o " = "

 

agora abra uma nova aba, digite:

 

teste.php?acao=2

 

Irá aparecer o 2.

 

Volte e atualize a aba anterior... o valor vai permanecer 1.

 

em seguinda, abra uma nova aba

 

<?php
session_start();
  

$_SESSION['a']=$_GET['acao'];

echo $_SESSION['a'];

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte,

 

O problema é que o usuário pode modificar este valor para um número qualquer.

Assim, corro o risco de gravar um número que não existe na minha base, pois este valor será chave primária da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Consegui fazer de uma forma:

 

Como tenho um botão na tela anterior, coloquei um hidden e enviei como se fosse um formulário via POST.

 

Assim, na próxima tela tenho como capturar via $_POST.

 

Muito obrigada a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu, apenas mostrei que o sessão não é alterado... o valor você não precisa passar via URL...

 

Outra coisa, você mesmo inserindo chave primária ?...

 

ótimo, parabéns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte,

 

Agora que li com menos rapidez eu entendi sim! Muito obrigada pela ajuda!

A chave primária é o seguinte: o usuário solicitou que eu apresentasse o número do registro no início da tela, antes de inserir o registro na base.

Desta forma, desenvolvi uma tabela independente da que vou inserir os dados do formulário apenas com o número da chave, que eu incremento via function do postgresql.

Assim, quando finalizo o meu form, eu insiro este número como chave primária na tabela.

Foi a forma que encontrei, pois nunca irei ter dois registros com mesmo número. Mas de qualquer forma, ainda faço uma validação para ter certeza.

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom já que usa postgresql, não sei como você faria para obter o ID da inserção, mais, no mysql bastaria usar

mysql_insert_id();
ele te daria o id gerado pela inserção...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.