Comment exécuter un jscript qui modifie un fichier texte coté serveur

Le
Olivier
Bonjour,

J'ai créé une database Access (avec access 2003) avec une page d'accès aux
données que j'ai mis sur mon serveur W2003 sous IIS.
Cela fonctionne bien à part que je voudrai que mon code jscript écrive dans
un fichier texte sur le serveur et non sur le poste client.
Voici mon script :

var ForReading = 1, ForWriting = 2, ForAppending = 8;
var fso, f;
var st;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("D:\Laboisprovis.txt", ForReading);
st = f.readAll();
f.Close();
f = fso.OpenTextFile("D:\Laboisprovis.txt", ForWriting, true);
f.Write (st.replace("JoinWorkgroup","JoinDomain"));
f.close();

Comment faire pour que mon script modifie le fichier ris.txt coté serveur et
non coté client ?

merci d'avance

Olivier le débutant
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #754824
Bonjour,


J'ai créé une database Access (avec access 2003) avec une page d'accès aux
données que j'ai mis sur mon serveur W2003 sous IIS.
Cela fonctionne bien à part que je voudrai que mon code jscript écrive dans
un fichier texte sur le serveur et non sur le poste client.
Voici mon script :

var ForReading = 1, ForWriting = 2, ForAppending = 8;
var fso, f;
var st;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("D:\Labo\risprov\ris.txt", ForReading);
st = f.readAll();
f.Close();


Eh bien ! C'est autorisé, ça, avec JScript ? J'espère au moins qu'il y a
une demande d'acceptation volontaire de la part du visiteur !

f = fso.OpenTextFile("D:\Labo\risprov\ris.txt", ForWriting, true);
f.Write (st.replace("JoinWorkgroup","JoinDomain"));
f.close();


Et encore plus pour l'écriture que pour la lecture...

Comment faire pour que mon script modifie le fichier ris.txt coté serveur et
non coté client ?


Eh bien il faut faire tourner le script sur le serveur. Si ce n'est pas
possible avec JScript, tu peux essayer avec Perl ou PHP, voire avec un
exécutable compilé. Personnellement je te conseillerais PHP. Et pour
appeler le script serveur depuis le client, ça peut se faire par un bête
formulaire, ou bien via AJAX (XmlHttpRequest).

YD
Le #754823
Bonjour,

J'ai créé une database Access (avec access 2003) avec une page d'accès aux
données que j'ai mis sur mon serveur W2003 sous IIS.
[...]
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("D:\Labo\risprov\ris.txt", ForReading);
st = f.readAll();
f.Close();


Eh bien ! C'est autorisé, ça, avec JScript ? J'espère au moins qu'il y a
une demande d'acceptation volontaire de la part du visiteur !


Ce n'est pas prévu pour être exécuté dans une page internet mais
pour écrire des scripts côté serveur (asp, aspx...) ou des scripts
d'administration de systèmes Windows.

Comment faire pour que mon script modifie le fichier ris.txt coté serveur et
non coté client ?


Eh bien il faut faire tourner le script sur le serveur. Si ce n'est pas
possible avec JScript, tu peux essayer avec Perl ou PHP, voire avec un
exécutable compilé. Personnellement je te conseillerais PHP. Et pour
appeler le script serveur depuis le client, ça peut se faire par un bête
formulaire, ou bien via AJAX (XmlHttpRequest).


L'OP dit qu'il a installé IIS et attaque sur le serveur une base Access,
donc des scripts asp feront ce qu'il veut (avec peu de changement de
syntaxe par rapport au code fourni) et sans installation logicielle
supplémentaire. En cherchant 'asp jscript access' sur Google il aura bien
des pistes...

--
Y.D.


Olivier Miakinen
Le #754822

f = fso.OpenTextFile("D:\Labo\risprov\ris.txt", ForReading);
st = f.readAll();


Eh bien ! C'est autorisé, ça, avec JScript ? [...]


Ce n'est pas prévu pour être exécuté dans une page internet mais
pour écrire des scripts côté serveur (asp, aspx...) ou des scripts
d'administration de systèmes Windows.


Ah, d'accord. Donc ça n'a aucune chance de lire et écrire les
fichiers côté client, contrairement à ce que laissait supposer
Olivier Ledébutant ?

Comment faire pour que mon script modifie le fichier ris.txt coté serveur et
non coté client ?


Eh bien il faut faire tourner le script sur le serveur. [...]


L'OP dit qu'il a installé IIS et attaque sur le serveur une base Access,
donc des scripts asp feront ce qu'il veut (avec peu de changement de
syntaxe par rapport au code fourni) et sans installation logicielle
supplémentaire.


Merci pour toutes ces précisions.



Olivier
Le #754821
merci pour vos conseils !
Je vais essayer de plancher la-dessus !

Olivier

"Olivier Miakinen"

f = fso.OpenTextFile("D:\Labo\risprov\ris.txt", ForReading);
st = f.readAll();


Eh bien ! C'est autorisé, ça, avec JScript ? [...]


Ce n'est pas prévu pour être exécuté dans une page internet mais
pour écrire des scripts côté serveur (asp, aspx...) ou des scripts
d'administration de systèmes Windows.


Ah, d'accord. Donc ça n'a aucune chance de lire et écrire les
fichiers côté client, contrairement à ce que laissait supposer
Olivier Ledébutant ?

Comment faire pour que mon script modifie le fichier ris.txt coté
serveur et
non coté client ?


Eh bien il faut faire tourner le script sur le serveur. [...]


L'OP dit qu'il a installé IIS et attaque sur le serveur une base Access,
donc des scripts asp feront ce qu'il veut (avec peu de changement de
syntaxe par rapport au code fourni) et sans installation logicielle
supplémentaire.


Merci pour toutes ces précisions.





YD
Le #754818
f = fso.OpenTextFile("D:\Labo\risprov\ris.txt", ForReading);
st = f.readAll();
Ce n'est pas prévu pour être exécuté dans une page internet mais


pour écrire des scripts côté serveur (asp, aspx...) ou des scripts
d'administration de systèmes Windows.


Ah, d'accord. Donc ça n'a aucune chance de lire et écrire les
fichiers côté client, contrairement à ce que laissait supposer
Olivier Ledébutant ?


Si la sécurité n'a pas été abaissée, il y aura au moins une demande
d'autorisation, et dans les versions les plus récentes d'IE un avis
de blocage du script. Pour IE, il s'agit de charger un objet ActiveX
du type "Scripting.FileSystemObject".

--
Y.D.




Publicité
Poster une réponse
Anonyme