creation d'un mini agenda - PHP - Programmation
Marsh Posté le 27-12-2007 à 18:16:31
le plus propre :
le plus facile a mettre en place
lors du chargement de la page tu stocke dans un tableau js les rendez vous qui arrivent a echeances dans les 30 minutes + un rechargement auto de la page au bout de 30 minutes
Marsh Posté le 27-12-2007 à 18:34:14
Bonjour flo850 et merci pour ta reponse rapide
oui, effectivement j'ai pense a ajax mais je ne connais pas trop bien, va peut etre falloir que je m'y mette
xmlHttprequest permet de stocker les donnees en xml, c ca?? et comment acceder au balises xml en PHP?
je pense que je v opter pour la solution ajax et interroge les serveur toutes les heures car au moment de la creation de l'evenement, je propose que des heures (9h00, 10h00, 11h00, ...)
de ce fait, quel est le meilleur moyen d'interroger la base a la 1ere ou 2eme minute de chaque heure ??
merci encore une fois
Marsh Posté le 28-12-2007 à 11:49:25
pourquoi premiere ou seconde minute de chaque heure ?
Contente toi juste de l'inerroger toutes les 60 minutes apres la premiere visite
Marsh Posté le 28-12-2007 à 11:59:36
Et s'il a un truc à 09h00 et qu'il se connecte à 08h59, il le saura qu'à 09h59, intéréssant
Y'a un environnement particulier
Marsh Posté le 28-12-2007 à 12:02:42
Quelle est la différence avec ce qui est proposé ? De checker la premiere ou seconde minute de chaque heure ? Si mon mail arrive a 9h03 ben c'est pareil, je vois pas la différence Il y aura une latence dans tous les cas !
Marsh Posté le 28-12-2007 à 12:20:22
Bah en vérifiant toutes les minutes ça limite sérieusement le lag
Maintenant je vois pas pourquoi on parle de temps de latence, suffit d'utiliser de l'ajax et d'attendre que quelque chose arrive Mais là c'est sur le serveur que ça doit mouliner en permanence pour envoyer dès que y'a quelque chose...
Marsh Posté le 28-12-2007 à 12:22:29
ReplyMarsh Posté le 28-12-2007 à 12:27:43
leflos5 a écrit : Ou sinon toutes les heures et élargir à l'heure suivante à a connexion |
Ce qui est précisément ce que j'ai dit....
Marsh Posté le 28-12-2007 à 12:28:05
merci pour vos reponses!!
"Et s'il a un truc à 09h00 et qu'il se connecte à 08h59, il le saura qu'à 09h59, intéréssant "
non, on le saura a 08h59 puisqu'on interroge la base a la premiere visite puis toutes les 60min
et puis de toute facon, on est pas a 30min ou 1h pres!!
avt de commencer la creation du pop up d'alerte, je dois tout d'abord finir l'affichage du planning et là vraiment je seche
je proposerai un affichage quotidien, hebdomadaire et mensuel.
lorsque je selectionne "quotidien", j'afficherai les heures de 8h a 19h, "hebdo" j'affiche les jours de la semaine, et "mensuel" les 30/31 jours du mois.
je connais bien le PHP, mais alors les fonctions de date, je ne m'en suis JAMAIS servi (mktime, ...)
auriez vous svp des idee et/ou conseils pour realiser cette tache??
merci infiniment de votre aide
Marsh Posté le 28-12-2007 à 12:57:06
Ce serait nettement plus simple sur un hébergement dédié mais je vaiis supposer que ca n'est pas ton cas.
Je ne pense pas que mktime soit très utile dans ton cas. date() devrait suffir
Par exemple dans le cas d'un affichage toutes les heures ( apres tu adapteras ) Tu checkes puis tu mets en session le contenu :
- de time() + 3600 ;
Lorsque tu feras un refresh de ta page , tu verifies que le chiffre stocké dans ta session est inférieur a time(). Autrement dit dans ce cas au moins 3600 secondes se seront passées depuis la mise en session.
A ce moment tu mets a jour la valeur de ta session avec a nouveau time() + 3600. pour préparer la prochaine vérification.
Dans cet exemple j'ai mis 3600 secondes pour une heure, mais il te suffira d'adapter ton chiffre
Marsh Posté le 28-12-2007 à 13:11:43
avt que je lise tout en message, je t'ecris vite fait pour te dire que je suis sur un serveur dedie
mais qu'est ce que ca chage d'etre en dedie ou mutualise????
Marsh Posté le 28-12-2007 à 13:22:00
ah, je ne sais pas si g mal compris ce que tu m'as explique ou si tu as mal compris mon probleme
je reexplique plus clairement:
un utilisateur a la possibilite de consulter son planing,
il a le choix de visualiser son planning du jour, de la semaine ou du mois.
j'aimerai de maniere dynamique pouvoir afficher par ex les jour de semaine si l'utilisateur veut consulter son planing de la semaine et du jour X.
en gros, je dois recuperer le jour X (mardi 8 janvier 2008 par ex) et afficher la semaine du 7 au 13 janv 2008
pareil pour uen consultation du planing mensuel:
je recupere le jour X (mardi 8 janvier 2008) et j'affiche tous les jours du mois de janv 2008
j'espere que tu vois mieux ce que je veux dire!
Marsh Posté le 28-12-2007 à 13:53:48
je vois bien, mais dis moi quelle diférence il y a entre checker toutes les heures pleines, et checker chaque heure apres la connexion ?
Aucune en fait, l'intervalle sera toujours de 60 minutes
Concernant le serveur dédié, c'est plaus facile car il suffit de faire une tache CRON
Marsh Posté le 28-12-2007 à 13:56:37
Mais je crois que c'est pas trop comme ca que tu devrais procéder.
Une admin ou tu ajoutes tes données, et une fonction JS avec AJAX ou tu mets a jour ta page.
Marsh Posté le 28-12-2007 à 14:17:23
hehe, on arrive pas a se comprendre
je parle pas des check, je parle de comment afficher de maniere dynamique les 7 jours de semaine ou les 30/31 jorus du mois:
je te donne un exemple.
la personne choisi d'afficher le planning hebdo du mardi 8 janvier 2008,
j'aimerai pouvoir afficher un truc du genre:
Lundi
07/01
------------------------------------------------------------------
Mardi
08/01
------------------------------------------------------------------
Mercredi
09/01
------------------------------------------------------------------
Jeudi
10/01
------------------------------------------------------------------
Vendredi
11/01
------------------------------------------------------------------
Samedi
12/01
------------------------------------------------------------------
Dimanche
13/01
Marsh Posté le 28-12-2007 à 15:32:26
Pareil, je serais interessé par un code qui affiche les dates du lundi au vendredi en fonction du numéro de semaine... si quelqu'un a ça dans ses tiroirs
Marsh Posté le 28-12-2007 à 15:38:32
ben suffit de reprendre les bases d'un calendrier en PHP
regarde du coté de la fonction date
http://fr3.php.net/manual/fr/function.date.php
Te servireont : date("-t" ); et date ("N" );
Apres, n'importe quel script de calendrier devrais t'aider
Marsh Posté le 28-12-2007 à 16:04:02
oui, g entre temps cherche, et appris pas mal de choses, je ne connais pas tres bien les fonctions de date...
je vous tien au courant si j'ai d'autres problemes.
en attendant, si je ne reecris pas, je vous present mes meilleurs voeux pour l'annee 2008...
@+
Marsh Posté le 28-12-2007 à 16:06:47
ah, slt Johan, j'avais pas ton message
tiens, ce script te fera ce que tu veux, dis moi si tu ne l'as pas bien compris
<?
$w = 7; // le numero de la semaine que tu veux afficher
for($i = 1; $i <= 365; $i++) {
$week = date("W", mktime(0, 0, 0, 1, $i, 2006));
if($week == $w) {
echo "Le jour " . $i . " est le premier jour de la semaine numéro : " . $w . "<br />";
// Ensuite pour afficher tous les jours de la semaine
for($d = 0; $d < 7; $d++) {
echo date("l d/m/Y", mktime(0, 0, 0, 1, $i+$d, 2006)) . "<br />";
}
break;
}
}
?>
Bon courage
Marsh Posté le 29-12-2007 à 01:37:22
the_bigboo a écrit : |
Absolument pas sauf si pour toi avoir tout décalé d'une heure c'est la même chose que d'avoir tout à quelques minutes de décalage...
J'ai dit, à la connexion on décale sur l'heure moins quelques minutes et après toutes les heures. C'est pas pareil que de taper toutes les 60 minutes depuis la connexion (qui peut être à 30) sachant qu'on parle de gérer des heures piles.
Enfin...
Marsh Posté le 10-01-2008 à 15:55:29
Bonjour a tous, je suis de retour
je vous souhaite a tous et a toutes, une excellente annee 2008, pleine de bonne sante, bonheur et d'idees...
j'ai enfin fini la creation de mon agenda (affichage planning, ajout de taches...), c t assez chaud, mais g appris plein de bonnes choses...
je dois maintenant creer le script qui permet d'afficher le pop up de l'alerte. mais je seche un peu.
je vais utiliser le XMLHttpRequest, pourrier vous me guider un peu svp?
Merci et bonne journee
Reda
Marsh Posté le 10-01-2008 à 17:37:00
Un popup c'est ni plus ni moins que du JS dont la recherche sur google avec "code popup" donne en premier lien http://www.net-pratique.fr/outils/genepopup.html
Après reste plus qu'à éxécuter le fonction en question
Marsh Posté le 10-01-2008 à 17:45:20
c'est bon, j'ai reussi a le finir avec de l'ajax
merci de votre aide
Marsh Posté le 10-01-2008 à 17:48:33
bonjour leflos, je viens de lire ton post.
oui c bon, j'utilise un pop up qui est appele avec la fonction window.setInterval("verif_tache()", 3600000);
verif_tach() est la fionction qui utilise XMLHttpRequest pour interroger la base de donnee...
@ bientot
Marsh Posté le 11-01-2008 à 05:30:05
Et alors cette histoire de timing tu la gères ou pas Genre je me connecte à 09h45, j'ai une réunion à 10h15, je suis avisé à 10h45 ou à 09h45 peut être
Marsh Posté le 11-01-2008 à 10:23:26
ah oui effectivement, g oublie ca
comment pourrais je faire une verif au moment de la connection?
merci pour ta remarque interessante
Marsh Posté le 11-01-2008 à 10:25:50
ah yeye, encore un autre petit probleme, dont je viens de m'en rendre compte!!!
window.setInterval("verif_tache()", 3600000); fonctionne uniquement lorsque je reste sur la meme page, mais je change de page, que dois je faire????
Marsh Posté le 11-01-2008 à 15:22:07
Au hasard, faire la même chose au chargement de la page : "onload" ou autre.
Marsh Posté le 11-01-2008 à 22:25:27
T'as toujours pas donné l'environnement... C'est dans quel but pour quelle utilisation Maitrise sur le ou les postes, appli web unique du poste...
Bref le contexte
Marsh Posté le 14-01-2008 à 11:05:36
Bonjour a tous, j'espere que vous avez passe un bon week end
au fait, ce que je veux faire est une appli web, ouverte a tout le personnel de la societe...!
lors de la creation d'une tache, on choisi les personnes concernees, et cette tache peut etre visualisee/modifiee/ terminee par le personnel designe...
il y a une rubrique reserve au personnel protege par un mot de passe: www.mon_site.com/admin
dans cette rubrique g plein d'appli admin: ajouter/modifier une news, une conference, faire un mailing... et parmi ces appli, j'ajoute l'agenda que je suis entrain de developpe.
si alors je change de page, comment pourrais je garde le compte a rebours de setInterval() ???
Marsh Posté le 14-01-2008 à 14:45:33
Je pense que tu devrais plutot faire un truc avec de l'ajax vraiment en mode asynchrone
Marsh Posté le 14-01-2008 à 15:08:33
j'utilise deja de l'ajax pour interroger la base sans avoir a recharger la page...
Marsh Posté le 15-01-2008 à 05:41:42
Bon bah sers toi en pour aller vérifier que y'a rien de neuf plus fréquement
On sait toujours pas si tu as main basse sur le serveur ou si c'est de l'hebergement limité
J'aurais un truc dans le genre à faire pour moi d'ici quelques temps, je me suis pas encore vraiment penché sur la question. Je testerais différentes choses, le but étant pour moi de trouver la solution qui permet d'être le moins dépendant du serveur/config de celui ci
Marsh Posté le 04-02-2008 à 15:34:25
Bonjours a tous, me revoila de retour apres 10 jours de vac trankilo sans avoir a penser au boulot et au stresse...!!
je dois malheureusement me remettre au boulot mais j'ai un peu de mal
j'ai presque finis cet agenda qui me rend dingue, il me reste juste un ptit truc mais vraiment je bloque!!
lorsqu'on se connecte, je fait une premiere verification, puis apres, une verif avec Ajax toutes les 30min.
le probleme est comment est ce que je peux maintenir le compteur lorsque je change de pages...
Merci infiniment de votre aide
Marsh Posté le 04-02-2008 à 15:39:56
Je ne connais pas grand chose à l'Ajax, mais tu peux stocker ca en Php dans une variable de session ($_SESSION['']).
... ou pas ...
Marsh Posté le 04-02-2008 à 22:18:17
Maitrise pas non plus, t'as pas un moyen de déclencher à telle heure
Au pire ça se fait, au lieu de passer par un compte à rebourds.
Sinon c'est ce que je voulais dire par ajax asynchrone, tu ouvres une connexion et c'est le serveur qui décide quand il envoie avec un truc qui tourne en boucle pour se mettre un truc sous la dent
Marsh Posté le 05-02-2008 à 12:09:50
hehe, alors la c le bug total, pour une fois, je ne sais meme plus par quoi et comment commencer!!
Babasss: j'ai pense a une variable de session, mais je ne sais pas trop comment m'y prendre!! ???!
Leflos5: je sais qu'il y a des fonction (cron) qui permettent de declancher une requette a une heure qu'on precise, mais c trop complique!
je ne sais pas trop ce que c l'ajax asynchrone
je v faire qlq autres recherches
A tres vite
Marsh Posté le 05-02-2008 à 13:49:50
Voici la solution que j'ai mise en place, j'espere qu'elle marchera :
lors de l'identification, je fais une premiere verification a l'aide de onLoad
puis je stock ds un coockie la date et heure de la verification: setcookie("dt_last_check", date("Y-m-d H:i" ), 0, "/" );
ds CHAQUE pas du site web, j'ai un include d'un fichier "utiles.php", dans ce fichier j'ai rajoute :
if((strtotime(date("Y-m-d H:i" )) - strtotime($_COOKIE[dt_last_check])) > 3600) echo "<script language='javascript'>check_task();</script>";
Soit une verif toutes les heures
qu'en pensez vous?
Marsh Posté le 05-02-2008 à 13:52:33
eh merde, j'ai oublie que si on ne change pas de page, il y aura pas de popup....
ca n'en finit jamais!!!
Marsh Posté le 27-12-2007 à 17:53:49
Bonjour tout le monde et joyeuses fetes...
je suis actuellement entrain de creer un petit systeme d'alertes (agenda)
j'ai jusqu'a mnt cree la parti qui permet de saisir la tache a effectuer. mais je bloque sur la maniere dont je dois afficher un pop up quand la date et l'heure de la tache sont arrives!!
devrais je rafraichir la page toutes les 10 ou 30min ????
merci par avance de votre aide
Reda