Ir para conteúdo

POWERED BY:

Arquivado

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

GustavoTSouza

[Resolvido] Formulários com Cookies+javascript

Recommended Posts

Boa tarde galera,

 

Tenho um form relativamente grande e quero que antes de expirar a sessao eu salve nos cookies.

Estou quase conseguindo postarei o que fiz até agora:

Código que segundos antes da sessão expirar da um submit no form para salvar nos cookies

<script type="text/javascript">
var limit="00:10"//alterar para 5 segundos antes de expirar sessao
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}
function Redireciona(){
if (!document.images)
return
if (parselimit==1)
document.cadastros.submit();
else{ 
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime=curmin+" : "+cursec+" segundos para o redirecionamento"
else
curtime=cursec+" segundos para o redirecionamentor"
window.status=curtime
setTimeout("Redireciona()",1000)
}
}
</script>

 

Aqui parte do formulário:

<body OnLoad="Redireciona()">
<form name="cadastro" action="salva.php" method="POST">
Nome: <input type="text" onblur="save1to4()" size="25" name="nome" id="nome" value="<?php echo isset($_COOKIE['nome'])? $_COOKIE['nome'] : '' ?>"/>
<br>
Telefone: <input type="text" size="15" name="telefone" id="telefone"value="<?php echo isset($_COOKIE['telefone'])? $_COOKIE['telefone'] : '' ?>"/><br>
<input type="submit" value="Enviar">
</form>

 

Redirecionado para cá

<?php
if(TEMPO DA SESSAO EXPIROU ){
setcookie("set","",time()+(3600*36)); //Sessao expira em 1h
setcookie("nome",$_POST["nome"],time()+3600);
setcookie("telefone",$_POST["telefone"],time()+3600);
header('Location':logout.php)// realizará o logout
}
else{// se foi o usuário que mandou o submit
setcookie("set","",time()+(3600*36)); //Sessao expira em 1h
setcookie("nome",$_POST["nome"],time()+3600);
setcookie("telefone",$_POST["telefone"],time()+3600);
header('Location:salva.php');
}
?>

 

Quero ajuda nesse ponto, se o usuário apertou o submit e não foi a função javascript, eu não quero que aconteça o logout (ainda quero salvar no banco de dados).

Como faço para diferenciar quem apertou o submit?

 

Resumindo:

Se está acabando o tempo função javascript aperta o botão submit para salvar nos cookies e dar logout do sistema.

Se usuário aperta submit salva nos cookies, salva no banco, e redireciona p/ o index.

 

Tentei passar um hidden para tratar com um if na outra página mas independente de quem de o submit valor do hidden sempre é igual a 1(obviamente)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você poderia setar um novo valor no input com javascript antes de redirecionar.

Se for o usuário permanece o valor inicial.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer o que estava querendo usando o Hidden com o javascript como o Carlos Coelho aconselhou.

 

Bastou adicionar a seguinte linha na função javascript:

if (parselimit==1){
document.cadastro.controle.value = "0"; //Essa linha
document.cadastro.submit(); 

 

E obviamente colocar um hidden com o name="controlar" value="1"

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso aí, certamente você não vai esquecer na próxima vez que precisar fazer algo assim. ;)

 

Essa é a vantagem de "fritar os miolos", ao invés de apenas pegar o código pronto. ^_^

 

Bons estudos :clap:

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.