fabiapo 0 Denunciar post Postado Janeiro 18, 2010 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
William Bruno 1501 Denunciar post Postado Janeiro 18, 2010 por query string? por cookie? Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Janeiro 18, 2010 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.US 1 Denunciar post Postado Janeiro 18, 2010 Não a conselho usar coockie por motivo que ele cria um FILE no temp do PC do user, indico usar _SESSION Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Janeiro 18, 2010 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
fabiapo 0 Denunciar post Postado Janeiro 18, 2010 E se eu passar este valor via query string mas criptografando com BASE64, terei problemas com segurança? Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Janeiro 18, 2010 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
fabiapo 0 Denunciar post Postado Janeiro 18, 2010 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
Alaerte Gabriel 662 Denunciar post Postado Janeiro 18, 2010 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
fabiapo 0 Denunciar post Postado Janeiro 18, 2010 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
fabiapo 0 Denunciar post Postado Janeiro 18, 2010 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
Alaerte Gabriel 662 Denunciar post Postado Janeiro 18, 2010 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
fabiapo 0 Denunciar post Postado Janeiro 18, 2010 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
Alaerte Gabriel 662 Denunciar post Postado Janeiro 18, 2010 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