Ir para conteúdo

Arquivado

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

KS_Scream

Executar comando php de tempo em tempo

Recommended Posts

Boa noite pessoal.

 

Estou fazendo alguns testes aqui e surgiu essa necessidade descrita no título. O objetivo é atualizar o conteúdo de uma variável (que não é exibida na página), porém sem refresh da página, há alguma maneira de fazer isso somente pelo PHP?

 

Sei como fazer com javascript, mas realmente prefiro usar somente PHP para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem refresh, com javascript :(

 

Mas, teria como detalhar qual sua necessidade? Como funcionaria detalhadamente isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem refresh, com javascript :(

 

Mas, teria como detalhar qual sua necessidade? Como funcionaria detalhadamente isso.

 

Sim, é só um teste que estou fazendo utilizando sessões, o objetivo seria proteger um pouco um sistema contra ataques de sequestro de sessão, então queria reescrever o id da sessão de tempo em tempo ao invez de fazer isso somente quando a página é atualizada, sei que tem de usar o comando "session_regenerate_id", mas estava tentando fazer sem refresh.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você disse sem refresh da página toda, então pode utilizar javascript, só não pode "recarregar tudo" certo?

 

Sendo assim você pode enviar um formulário dinâmico utilizando jquery, este formulário pode ter como "action=''" um outro script php que rodará sem que sua página seja recarregada.

 

Para clarificar:

 

Você terá um form "invisível" em sua página, e um setInterval(); que de tempo em tempo irá "enviar" este form, ou seja, executar o script atribuído em "action=''".

//É preciso criar uma div ou outro objeto que receba o "conteúdo" deste script dinâmico que você está executando, neste caso chamei de 'minha_div'

setInterval(function(){$('#'+meu_formulario).ajaxForm({target:'#'+minha_div}).submit();}, 1000); 

//Este interval rodará o script a cada 1 segundo (1000)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar cronjobs. Ou também colocar um while infinito que irá executar o comando e vai dormir usando sleep, depois executa novamente e vai dormir novamente, e assim sucessivamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não quer JS por causa que fica no navegador do usuário, blz

Mas uma ou outra, ou você usa um ajax, e usa o PHP para manipular a sessão

ou você executa uma função toda vez q ele dar refresh, ou seja, pegar uma pagina no servidor, como o Bootstrap em frameworks por exemplo, eles sempre são executados antes da pagina e em todo o site.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

https://github.com/reactphp/event-loop

 

 

Você pode usar cronjobs. Ou também colocar um while infinito que irá executar o comando e vai dormir usando sleep, depois executa novamente e vai dormir novamente, e assim sucessivamente

 

 

 

$loop = React\EventLoop\Factory::create();

$loop->addPeriodicTimer(5, function () {
 
//session_regenerate_id
$memory = memory_get_usage() / 1024;
$formatted = number_format($memory, 3).'K';
echo "Current memory usage: {$formatted}\n";
});

$loop->run();

 

$ php event-loop.php

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.