1 votes

Après 30 secondes, mise à jour de la base de données MYSQL

J'ai cherché ici sur SO et sur Google, mais je n'ai rien trouvé qui corresponde à ma description.

Ce que je veux faire, c'est mettre à jour la base de données si la page n'a pas été actualisée après 30 secondes. Je veux envoyer par courrier électronique à une personne le contenu d'un formulaire {soumis par un autre utilisateur} (je peux le faire) SI la personne n'a PAS visité la page (je peux le faire) au cours des 30 dernières secondes.

J'ai essayé de faire en sorte que la page qui doit être visitée soit rafraîchie toutes les 30 secondes, et je me suis donc dit que si je faisais quelque chose comme, après 31 secondes, éditer la base de données (de sorte que si la page rafraîchie n'était pas rafraîchie, l'édition de la base de données s'exécuterait).

Je suis désolé si cela semble compliqué, il y a probablement une meilleure façon de procéder, mais je ne suis pas sûr de savoir comment.

Dans l'ensemble, j'essaie de créer une sorte de "service", de sorte que si la personne ne regarde pas activement la page, elle recevra un courrier électronique avec le contenu du formulaire, quel qu'il soit. La page contiendra un tableau de tous les résultats du formulaire.

4voto

small_duck Points 2165

Vous pourriez mettre à jour la base de données en créant un enregistrement avec un horodatage chaque fois que l'utilisateur actualise la page. Ensuite, vous pouvez avoir un worker PHP qui regarde régulièrement dans la base de données si l'horodatage est plus vieux que 30 secondes, et démarre l'e-mail.

1voto

Lukasz Dziedzia Points 4134

Je ne peux pas fournir de solution php pour la partie serveur du travail. Mais en gros, vous devez mettre en place un timer javascript (par exemple, jquery timeout) et après 30 secondes, faire l'appel ajax qui fera ce que vous voulez sur le serveur (sauvegarder quelque chose dans la base de données, envoyer un email, etc).

J'espère que j'ai compris votre point de vue et que mes conseils vous aideront d'une manière ou d'une autre.

0voto

Lizard Points 10620

Peut-être utiliser un appel AJAX toutes les 30 secondes sur la base de la setTimeout fonction javascript ?

http://www.w3schools.com/js/js_timing.asp

function timedCount()
{
    # ajax call
    t=setTimeout("timedCount()",30000);
}

0voto

Kevin Barnes Points 357

Je suggérerais d'utiliser du javascript comme ceci :
window.setTimeout("location.reload(true);", 3000);

Ceci est bien sûr possible si vous avez désespérément besoin de recharger, mais l'utilisateur sera évidemment furieux que vous rechargiez la fenêtre pour lui.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X