IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Accession à un serveur sans PHP


Sujet :

AJAX

  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut [AJAX] Accession à un serveur sans PHP
    Je souhaiterai savoir s'il est possible d'écrire et/ou de lire un fichier XML présent sur un serveur avec ajax sans passer par php.

    Je m'explique, je suis en stage dans une entreprise et je dois leur faire un calendrier de type google agenda (en moins compliqué ). Cet agenda sera présent sur tablet PC qui ne supporte malheuresement pas le PHP.

    Je dois tout de même stocké les données entrées dans cet agenda sur un serveur dans un fichier au format XML.

    J'ai farfouillé sur le net et j'ai trouvé plusieurs fonctions comme celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    //fonction qui écrit dans un fichier XML
    // Ligne: Ligne à insérer dans le fichier XML
    function ecrireXML(Ligne){
    	var ForReading = 1, ForWriting = 2, ForAppending = 8;
    	// The following line contains constants for the OpenTextFile
    	// format argument, which is not used in the code below.
    	var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
     
    	var fso = new ActiveXObject("Scripting.FileSystemObject");
     
    	// Open the file for output.
    	var filename = "c:\\action.xml";
     
    	//Création du fichier s'il n'existe pas déjà
    	if(!fso.FileExists(filename)) fso.CreateTextFile(filename,false);
     
    	var f = fso.OpenTextFile(filename, ForAppending, true);
    	// Write to the file.
    	f.WriteLine(Ligne);
    	f.Close();
    }
    qui me permet d'écrire en local dans un fichier XML

    et celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    //fonction permettant de récupérer les actions enregistrées sur le serveur sur un fichier XML
    function actualisationAction2(){ 
    	var ForReading = 1, ForWriting = 2, ForAppending = 8;
    	// The following line contains constants for the OpenTextFile
    	// format argument, which is not used in the code below.
    	var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
     
    	var fso = new ActiveXObject("Scripting.FileSystemObject");
    	var filename = "c:\\action.xml";
    	// Open the file for input.
    		f = fso.OpenTextFile(filename, ForReading);
     
    		// Read from the file and display the results.
    		while (!f.AtEndOfStream)
    			{
    			var r = f.ReadLine();
    			document.write (r + "<br />");
    			}
    		f.Close();
    }
    qui me permet de lire ce fichier XML toujours en local.
    Est-il possible de modifier ce code afin d'accéder à ce fichier XML sur un serveur.

    dois-je utiliser plutôt une fonction utilisant les xmlHTTPRequest comme celle-ci?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    function actualisationAction()
    	{ 
    		var xhr_object = null; 
    		if(window.XMLHttpRequest) // Firefox 
    		   xhr_object = new XMLHttpRequest(); 
    		else if(window.ActiveXObject) // Internet Explorer 
    		   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
    		else { // XMLHttpRequest non support par le navigateur 
    		   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		   return ; 
    		} 
     
    		xhr_object.open("POST", "action.txt", true); 
    		xhr_object.onreadystatechange = function() { 
    		   if(xhr_object.readyState == 4){
    				alert(xhr_object.responseText);
    				//document.getElementById('bubule').value= xhr_object.responseText;
    			}
    		} 
     
    		xhr_object.send(null); 
    	}
    Merci d'avance pour vos réponses

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Phpdebut Voir le message
    Cet agenda sera présent sur tablet PC qui ne supporte malheuresement pas le PHP.
    il faudrait préciser un peu tes contraintes, là.
    Parce que le tablet PC est à priori client et non serveur ...
    Il n'a donc pas à "supporter le PHP" : toi-même tu n'as pas forcément de serveur PHP installé sur ton poste pour surfer sur Internet, alors que la majorité des sites que tu visites utilise PHP

    Bref, ce n'est pas parce que le tablet PC ne supporte pas PHP qu'il ne peut pas accéder à un serveur PHP ...

    D'où ma demandes de précisions complémentaires

    Donc, pour l'instant, la réponse est :
    non, Ajax n'a pas forcément besoin de PHP pour accéder à un fichier sur le serveur
    mais
    oui, ça serait beaucoup plus efficace en utilisant PHP (ou tout autre langage serveur) pour le traiter

    A+

  3. #3
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    Merci pour cette réponse,

    Je suis allez glaner des infos concernant les contraintes: Pas de PHP... c'est le serveur qui ne le supporte pas et non le tablet PC.

    Autant pour moi

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Il doit bien en connaitre un autre, non ?
    ASP, JSP ..

    Parce qu'un serveur qui ne supporte aucun langage serveur, y a un problème, là

    A+

  5. #5
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    Reretour au maître de stage pour d'autres explications (on va y arriver! )

    Le serveur en question est un serveur web embarqué qui n'a pas de modules installés du style PHP ASP... donc à priori rien à faire... il n'en veut pas du php/asp/jsp...

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Phpdebut Voir le message
    il n'en veut pas du php/asp/jsp...
    Mais c'est à toi de recoller les morceaux

    Autant te filer une trottinette avec instruction de gagner le Bol d'Or

    Ils n'ont qu'à utiliser un produit fait pour : Outlook ou autre.

    Y a même des Open Source gratuits, si c'est ça le problème

    Bref, quand on veut pas mettre le minimum de moyens ...

    PS : bon courage

    A+

  7. #7
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    arf d'accord merci... je vais essayer de me dépatouiller...

    Donc à priori si j'ai bien compris, impossible de récupérer ce fichu fichier (ouh! c'est dur à dire ça...) sans avoir au préalable installé de module du type php/asp sur le serveur?

    Si quelqu'un à une solution moi je suis preneur hein

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Phpdebut Voir le message
    Donc à priori si j'ai bien compris, impossible de récupérer ce fichu fichier (ouh! c'est dur à dire ça...) sans avoir au préalable installé de module du type php/asp sur le serveur?
    Ce n'est pas exactement ça : le fichier tu pourras le récupérer, le lire et l'intégrer dans ta page avec Ajax, et sans PHP (il suffit que ton appel Ajax pointe directement sur le fichier).

    Le problème, ça va être pour le modifier et mettre à jour ces modifs sur le serveurs ...
    Si le fichier doit être partagé entre plusieurs utilisateurs, sans langage serveur ça va être la ... pas pratique, quoi (accès concurrents, décalage de versions, bref pas gérable)

    A+

  9. #9
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    aha!! Justement ce fichier doit justement ne pas être partagé par plusieurs utilisateurs! (ne me demandez pas pourquoi je ne saurais pas expliqué...) Il n'y a en principe qu'un seul utilisateur qui pourra y accéder.

    Pouvez-vous (pour que je puisse tester) m'indiquer comment faire à ce moment là pour lire/écrire dans un fichier xml??

    ne faut-il pas modifier une des fonctions ci-dessus? ou alors c'est autre chose de totalement différent?

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ecrire dans un fichier sur le serveur directement depuis un script coté client... ça ne te pose pas un léger problème au niveau sécurité
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    et bien étend donné que le tout sera sur un réseau lan non connecté à internet non...

    Enfin moi je dis ça... j'espère que c'est le cas... toute façon pas mon problème à moi ils gèreront (j'espère) de leur coté

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Heu, pour un seul utilisateur, ça serait pas plus simple de lui coller le XML (qui n'a du coup rien à faire sur un serveur) et Excel (ou équivalent Open Office, gratuit) sur sa tablette ?

    Tu lui fais un bel habillage de son fichier + 2-3 macro pour dynamiser le tout et hop

    A+

  13. #13
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    Bah j'y avais pensé... malheuresement il y a d'autres logiciels relié au serveur qui doivent pouvoir lire le fichier XML afin d'executer certaine chose en fonction de ce qu'il y a ecrit dedans... Donc stockage sur serveur...

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Phpdebut Voir le message
    ce fichier doit justement ne pas être partagé par plusieurs utilisateurs!
    Citation Envoyé par Phpdebut Voir le message
    malheuresement il y a d'autres logiciels relié au serveur qui doivent pouvoir lire le fichier XML afin d'executer certaine chose en fonction de ce qu'il y a ecrit dedans... Donc stockage sur serveur...
    Et donc plusieurs "utilisateurs"

    Même si certains ne sont que des logiciels ...

    A+

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Du coup, ton utilisateur "humain" (le tablet PC), il doit pouvoir le modifier ou c'est juste en lecture ?

    A+

  16. #16
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    Donc je résume:

    En fait ce tablet PC contient un agenda qui permet à l'utilisateur de déclencher à des dates et heures précises des évènements dans sa maison ( du style arroser le jardin ou mettre le chauffage). Les informations qu'il entre dans l'agenda sont stockés sur un fichier XML qui est lu (et uniquement lu) par d'autres logiciels qui se chargeront d'arroser le jardin .

    Donc en gros l'utilisateur humain doit pouvoir lire et modifier ce fichier XML alors que les autres logiciels ne font que le lire.

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Oui oui oui

    Donc, je résume, moi :
    Quand on veut faire de la domotique, on investit un minimum sur l'architecture technique (oui d'accord, y a le tablet PC, mais ça c'est la façade).

    Si c'est pour s'afficher avec une belle vitrine High-Tech alors que la solution est montée avec des bouts de sparadrap, le créneau est déjà pris

    EDIT : enfin, je dis ça ... y a peut être une solution, mais moi je l'ai pas. Et je sens mal l'affaire

    A+

  18. #18
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    arg merci

  19. #19
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    Sinon concernant uniquement la lecture, connaissez vous une solution?

  20. #20
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Phpdebut Voir le message
    Sinon concernant uniquement la lecture, connaissez vous une solution?
    Ben tu l'as déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		xhr_object.open("POST", "action.txt", true); 
    		xhr_object.onreadystatechange = function() { 
    		   if(xhr_object.readyState == 4){
    				alert(xhr_object.responseText);
    				//document.getElementById('bubule').value= xhr_object.responseText;
    			}
    		} 
     
    		xhr_object.send(null);
    Si tu remplaces le action.txt par ton fichier XML, tu récupéreras celui-ci dans le responseText.
    Ici tu fais un alert(), mais rien ne t'empêche de l'afficher dans la page ...

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AJAX] Autocompletion pas à pas - sans PHP
    Par hocdz dans le forum AJAX
    Réponses: 4
    Dernier message: 09/08/2009, 18h59
  2. [AJAX] input type=file avec php côté serveur
    Par redstain dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/01/2007, 15h43
  3. Réponses: 6
    Dernier message: 03/09/2006, 15h00
  4. [AJAX] Recharger un menu deroulant php sans recharger la page
    Par ns_deux dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 22/07/2006, 15h59
  5. Acceder a une base sur serveur sans access en local
    Par doudoustephane dans le forum Access
    Réponses: 8
    Dernier message: 25/06/2006, 23h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo