Ecrire un fichier sur le serveur en Javascript

Ecrire un fichier sur le serveur en Javascript - Javascript/Node.js - Programmation

Marsh Posté le 27-02-2017 à 11:27:54    

Bonjour à tous,
 
J'ai un besoin un peu particulier sur lequel je suis limité par l'architecture technique (uniquement du JS, pas de PHP) et sur lequel je ne suis pas sûr qu'une réponse existe. Mais je tente quand même.
Pour une sombre raison de connexion entre un applicatif métier, développé en client serveur, et un serveur de BI, je passe par un petit bout de Javascript qui récupère les paramètres passés depuis le client serveur, les repositionne dans un formulaire en mode POST et les envoie au serveur BI.
 
Cela donne le code suivant.
l'URL entrante est sur la forme http://xxx/page.html?param1=a&param2=b
   

<form id="form_dsc" method="post" action="http://xxx">
       <input type="hidden" id="eul"  name="eul"  value="">
       <input type="hidden" id="wbk" name="wbk" value="">
       <input type="hidden" id="wsk" name="wsk" value="">
       <input type="hidden" id="db"  name="db"  value="">
       <input type="submit" id="sub" value="Se connecter Manuellement">    
    </form>
       <script type="text/javascript">
       if (location.search != "" ) {
         longueur = window.location.search.length - 1;
         data = window.location.search.substr(1,longueur);
         donnees = data.split("&" );
         for (var i=0; i < donnees.length; i++) {
           position = donnees[i].indexOf("=" );
           variable = donnees[i].substr(0,position);
           pos = position + 1;
           valeur = decodeURI(donnees[i].substr(pos,donnees[i].length));
           while (valeur.search(/\+/) != -1){
            valeur = valeur.replace(/\+/," " );
           }
             document.getElementById(variable).value = valeur;
         }
       }  
        document.getElementById("form_dsc" ).submit();      
      </script>


 
Pour un besoin de monitoring, j'aurais besoin d'historiser les paramètres retranscrits, potentiellement via un simple fichier Texte de LOG.

1 : a - 2 : b


 
Je sais bien que le javascript ne permet pas d'écrire sur le serveur directement (merci la faille de sécurité :o ) mais y a t'il un autre moyen d'arriver à un résultat similaire ?
Je précise que le volume de données est faible (pas 10 000 hits par jour)
 
Merci à vous

Reply

Marsh Posté le 27-02-2017 à 11:27:54   

Reply

Marsh Posté le 27-02-2017 à 13:40:09    

Créer un service sur un autre serveur, et ce service pourrait être appelé en POST ou GET et tu lui balancerais les infos

Reply

Marsh Posté le 27-02-2017 à 13:51:48    

J'y avais pensé, mais avec une nouvelle pop-up qui se fermerait automatiquement. Mais ça génerait l'expérience utilisateur...
 
Ta solution est plus propre ; aurais tu de la doc ou un lien vers une procédure pour créer ce service et l'appeler ?

Reply

Marsh Posté le 16-03-2017 à 17:08:55    

Un petit UP ?
 
Car chaque service que je vois est un sevice basé sur du PHP (pour l'appel au service également) ?
 
Merci de votre aide :jap:


Message édité par cairn-ivore le 16-03-2017 à 17:09:06
Reply

Marsh Posté le 16-03-2017 à 21:09:48    

Bonjour,
 
Tu as une multitude de clients qui utilisent ton formulaire, et tu souhaites sauvegarder leur paramètres. Il te faut donc un serveur tiers pour récupérer ta requête POST/GET et sauvegarder les paramètres dans un fichier.
 
La requête peut être être réalisé en JS, mais il te faudra un serveur (PHP, NODEJS, etc.). As-tu la possibilité de faire ce serveur ? et surtout le mettre à disposition de tous les clients.
Le serveur BI peut-être modifié en ce sens ?  
 
Tor


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
Reply

Marsh Posté le 17-03-2017 à 08:19:59    

Oui, j'ai un serveur PHP que je peux utiliser
 
Hebérgé à l'extérieur mais accessible par tous
 
:jap:

Reply

Marsh Posté le 17-03-2017 à 11:29:00    

Et bah voila,  
 
 1 - Tu récupères la soumission du formulaire par une fonction JS (https://www.w3schools.com/tags/ev_onsubmit.asp)
 2 - Tu crées une requête XHR (https://openclassrooms.com/courses/ajax-et-l-echange-de-donnees-en-javascript)
 3 - Tu envoies ta requête sur un serveur PHP prévu à cet effet. En php tu peux récupérer une requête avec $_POST['maVariable'] ...
 4 - Tu enregistres chaque requête dans un fichier/base de données
 
Et voila :)
 
Bon il reste quand même à regarder la sécurité du bousin car "Hebérgé à l'extérieur mais accessible par tous" ça signifie que c'est sur internet ? ou sur le réseau local ?


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
Reply

Marsh Posté le 17-03-2017 à 11:39:08    

Nickel, un grand merci :)


Message édité par cairn-ivore le 17-03-2017 à 11:39:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed