Rechercher : dans
Par :

[Javascript] Pb de script de MaJ auto

Dernière réponse le 21 jui 2005 à 14:54:16 txiki, le 2 avr 2005 à 16:09:07 
 Signaler ce message aux modérateurs

Bonjour à tous les spécialistes,
Voilà, j'ai un souci avec un script de mise à jour automatique des pages web modifiées. En local, ça m'affiche la date de la modif (normal me dires-vous puisque je teste aussitôt) mais une fois chez l'hébergeur, les pages mises à jour antérieurement affichent EGALEMENT la date du jour (celle de la visite en fait). Or, ce n'est pas le but.

J'ai du merder quelque part mais où ????
voici le script:

<!-- affiche la dernière modif de fichier
function afficherDateModif() 
{ 
      var lesMois = new Array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'); 

      var dateModif = new Date (document.lastModified); 

      var annee = dateModif.getFullYear(); 
      var mois = dateModif.getMonth(); 
      var jour = dateModif.getDate(); 

      document.write('Mis à jour le '+ jour +' - '+ lesMois[mois] +' - '+ annee); 
} 
-->


vous pouvez le vérifier à: http://abarkahiru.free.fr/

erci d'avance pour votre aide.
PS: On n'en parle pas dans les recherches que j'ai pu faire.


Un adulte assis voit plus loin qu'un jeune debout.

Meilleures réponses pour « [Javascript] Pb de script de MaJ auto » dans :
Javascript - Introduction au langage Javascript Voir Qu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...
Javascript - Interdire le clic droit de la souris VoirIl est possible d'empêcher que votre visiteur effectue un clic droit sur votre page. Ceci permet une protection relative de vote code source et de vos photos. Placez ce script entre les balises et de votre code HTML :
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Javascript - Implantation du code VoirA quel emplacement insérer le Javascript dans votre page HTML Il existe plusieurs façons d'inclure du JavaScript dans une page HTML : Grâce à la balise En mettant le code dans un fichier Grâce aux événements Dans la balise...
Javascript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non, ce qui permet notamment de donner de l'interactivité à vos scripts. L'instruction...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...

1

ric, le 2 avr 2005 à 19:11:48

Bonjour
Regarde du côté de :
document.lastModified

Répondre à ric

3

txiki, le 2 avr 2005 à 20:56:55

Encore moi:
Voici ce que j'ai trouvé sur un site: http://www.javascriptfr.com/code.aspx?id=18946 l'avant dernière ligne (ce n'est pas le même code mais)...

ATTENTION !!!
Ce script ne fonctionne pas sur les pages PHP, pour utiliser un code de dernière modification en php, veuillez utiliser:
<?php
echo 'Dernière modification: <BR>Le'.date("d/m/y à H:i:s", filemtime($PATH_TRANSLATED));
?>
Voilà


Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

2

txiki, le 2 avr 2005 à 20:24:03

Salut ric et merci,

Heuuuu! comment ça "last modified" ?
Tout le script est là.
Ensuite dans les pages, je met <script language ..... url du script > dans le head
puis à l'endroit même où il doit se situer: <script language="JavaScript" type="text/javascript">afficherDateModif();</script>

Je n'ai rien d'autre. Je pensais que ce script me servait a éviter de mettre les dates de modif de chaque page mais, qu'une fois sur le serveur, il gardait cette date de modif. Or il n'en est rien.

Apparement, lorsqu'on va visiter la page, le script regarde l'heure (donc la date) sur la machine client et l'affiche.

merci quand même. Je vais tenter de trouver quelque chose..... et je vous tiens au courant.
Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

4

ric, le 3 avr 2005 à 11:43:54

Bonjour
Voici le code javascript complet.

<body>
<br /><br />
<script language="javascript">
document.writeln("Dernière modification de ce document : "+document.lastModified);
</script>
<br /><br />
</body>

Répondre à ric

5

txiki, le 3 avr 2005 à 12:55:32

Salut ric,

J'ai vu sur un forum que ce script ne fonctionnait pas pour des fichiers en php. Il faut rajouter 2/3 trucs.

Ton code ne me fais de plus sinon qu'afficher une phrase différente mais pour la date et l'heure, c'est sur la base de l'ordi du client.

Suis vraiment emmmerdé.....
Vais tenter d'insérer le code cité plus haut (en php) pour voir...

Merci beaucoup quand même. ;-))

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

6

ric, le 3 avr 2005 à 17:05:30

Le code retourne la date du dernier enregistrement de la page en cours.
Tu inséres ce code dans la page, tu l'enregistres et la date affichée dans la page html, asp, php ou autres sera le 03-04-2005.
Mais, dans 1 an, 10 ans ou plus et si tu n'as pas réenregistré la page, la date sera toujours celle d'aujourd'hui soit le 03-04-2005.

Mais ce n'est peut-être pas ce que tu veux ?

Répondre à ric

7

ric, le 3 avr 2005 à 21:33:41

Autant pour moi.
Effectivement le javascript ne peut pas marcher sur une page dynamique puisqu'elle est générée à la demande.
Je réfléchis et, si je trouve, je te tiens au courant.

Répondre à ric

8

ric, le 3 avr 2005 à 21:53:41

Voici ce que j'ai trouvé sur un site: http://www.javascriptfr.com/code.aspx?id=18946 l'avant dernière ligne (ce n'est pas le même code mais)... 
Cela marche.
Je n'avais pas compris que c'était la solution que tu avais trouvé.

Répondre à ric

9

txiki, le 3 avr 2005 à 23:40:52

Salut ric,

Je ne te suis plus du tout là ???

Qu'est-ce qui marche. De plus, je ne veux que jj/mm/aa et pas de heures minutes et secondes

Je n'ai pas essayé ce code (j'ai peur de tout foutre en l'air bien que je travaille sur un dossier de test :: http://abarkahiru.free.fr )

Je suis en train de refaire ce P.... de menu qui me pose un sérieux Pb (je voudrais avoir le drapeau basque flottant + les petits logos en dessous dans TOUTES les pages et TOUJOURS visibles.
Pour cela, je dois modifier la hauteur des deux premiers menus ainsi que les classes pour chacun d'eux afin de les distinguer des hautres mais je crois que j'ai trouvé une soluce (faire un new array et spécifier des hauteurs pour chaque menu, différents bien sur pour les deux premiers et autant de hauteurs qu'il y a de menu restants.

Mais ça ne résout pas mon Pb de date de dernières modif d'une page donnée.
En plus, je pige rien en javascript ni en php. Tu vois le travail !
Merci mille fois en tous cas de ton aide, c'est très cool.

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

10

ric, le 4 avr 2005 à 11:05:48

Colle cela dans une page PHP et tu auras la date de dernière modification du script

Répondre à ric

11

txiki, le 4 avr 2005 à 13:43:33

Salut ric et merci pour ta patience,

code cela dans une page php
mais quoi ? il n'y a rien ?
Tu veux parler du code que je cite plus haut ? La particularité pour le php ?
Je m'en vois mais je vais y arriver ! parole de basque ! ;-))

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

12

ric, le 4 avr 2005 à 20:28:05

Excuse, j'avais fait le copier, mais pas le coller.
<?php
echo 'Dernière modification : le ' . date("d/m/y", filemtime($PATH_TRANSLATED));
?>
Chez moi ça marche.

Répondre à ric

13

txiki, le 4 avr 2005 à 21:01:55

Salut ric et merci infiniment pour ton aide si précieuse.
Je te dirais cela demain. A vérifier sur le site http://abarkahiru.free.fr/mythologie/mythologie basque/les amulettes. ;-)))

J'ai enfin fini par trouver comment coller le drapeau et les logos pour les versions étrangères au menu (cad toujours visibles malgrès le scroll). Un mois de recherches et de prise de tête enfin récompensé.

Je viens de modifier la css pour le titre des pages et ça merde encore (j'en suis a je ne sais pas combien de réinstall de studio MX 2004 (il a des comportements très bizarres parfois ????)

Mille mercis pour ton aide sur ce script de mise à jour.....

PS: iubito's a fait un boulot extraordinaire sur les menus dynamiques (css et javascript).
Je vais tenter de faire une explication sur cette façon précise de faire un menu positionné par un script en javascript et la façon de faire des hauteurs différentes pour chacun d'eux (pour y mettre une image par exemple).

@ + et merci ;-)))

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

14

txiki, le 5 avr 2005 à 00:49:36

Salut ric,
Eh bien pas de bol ;-((( chez moi non. Il m'affiche le 01 01 70 tu parles !

j'ai viré les heures sur le script mais ça marchait déjà pas avant. Bouuuuuh :-((((((

J'en ai maaaaarre !!!!

tu peux vérifier sur http://abarkahiru.free.fr à mythologie / mythologie basque (là tu clique sur " les amulettes").

Comment t'a fais pour que ça marche toi ? Qu'a-tu fais de différent ?

Je me croyais sauvé eh bien non !

Merci encore...

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

15

ric, le 5 avr 2005 à 15:20:24

Laréponse est peut-être là.
***************************
'PATH_TRANSLATED'
Chemin dans le système de fichier (pas le document-root) jusqu'au script courant, une fois que le serveur a fait une traduction chemin virtuel -> réel.

Note : Depuis PHP 4.3.2, la variable PATH_TRANSLATED n'est plus seulement définie implicitement sous Apache 2 SAPI contrairement à la situation sous Apache 1 où elle est définie avec la même valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'est pas fournie par Apache. Ce changement a été effectué pour être conforme aux spécifications CGI qui fait que la variable PATH_TRANSLATED ne doit exister seulement si la variable PATH_INFO est définie.

Les utilisateurs d'Apache 2 devrait utiliser AcceptPathInfo = On au lieu de httpd.conf pour définir PATH_INFO.
******************************
Extrait de cette page
http://fr3.php.net/reserved.variables

Je suis en Apache version 1.

Répondre à ric

16

txiki, le 5 avr 2005 à 17:14:04

Salut ric,

J'ai visité le site mentionné mais je ne pipe rien (mais ce qui s'appelle rien) :-((((

Je ne suis pas sorti de l'auberge moi.

Pour résumer: mon script se trouve dans un répertoire

scripts 
(
MaJ.js
) (j'ai enlevé les heures).
Dans le head, j'ai mis
<script language * * * * * * </script>

A l'endroit de l'affichage de cette maudite dernière modif de fichier, (dans le body donc) j'ai mis ce que le gars préconise mais en enlevant [
à h,i,s
].

Résultat: je me trouve avec un code qui me retourne une date au 01/01/70 .

Je n'ai plus réinstallé EasyPHP et je préfère uploader directement chez free puis vérifier.

Ce soir je vais vérifier si j'ai mis des chemins relatifs mais je ne vois plus très clair.

Merci infiniment pour ton soutient, tu est vraiment très cool comme tous ceux de CCM d'ailleurs.

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

17

txiki, le 6 avr 2005 à 20:19:52

Salut ric,
Je viens de comprendre comment faire. En fait, j'ai viré le script en javascript et n'ai gardé que le code php (mais pas celui-ci, un autre)

<?
print("Modifié le ");
print(date("d - m - Y", filemtime($SCRIPT_FILENAME)));
?>

Ceci dit, le tiens doit fonctionner aussi, je vais tester de suite.

Je n'avais pas compris que le code php allait voir la date d'enregistrement de la page sur le serveur (la date de l'upload en fait) et le retournait.
Voilà ma grosse erreur !!!
C'est que du bonheur !!! ;-))))) Yalààààààààà ! enfin je vérifierai demain mais déjà là, il m'affiche une date correcte. Il faudrait que demain elle soit la même que celle d'aujourd'hui.

Merci, merci MERCI.


Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

18

ric, le 7 avr 2005 à 11:38:44

Les deux scripts PHP avec PATH_TRANSLATED ou SCRIPT_FILENAME fonctionnent sur mon serveur chez AMEN, mais aucun en local sous Windows.

Répondre à ric

19

txiki, le 7 avr 2005 à 15:48:17

Salut ric,
Il semblerait que chez free, le path_translated ne fonctionne pas.
Ce qui me surprend quand même car je ne pense pas qu'ils soient restés avec une version 1 d'apache.

Merdci pour tout.

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki

20

 txiki, le 21 jui 2005 à 14:54:16

Salut les gars et merci encore ;-)))

Pb réglé:

Pour un fichier en php, il faut carrément VIRER le script javascript de l'entête puis
METTRE le script PHP à l'endroit où l'on veut qu'il s"affiche sur la page.
En fait, et je l'ai compris que maintenant, ce script va voir à quelle date le fichier a été uploadé sur le serveur.

MERCI MERCI les gars.

Un adulte assis voit plus loin qu'un jeune debout.

Répondre à txiki