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

JavaScript Discussion :

Comment récupérer des infos envoyées entre deux fichiers hébergés sur des serveurs différents ?


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut Comment récupérer des infos envoyées entre deux fichiers hébergés sur des serveurs différents ?
    Bonjour a tous,

    J'ai un fichier fichierOVH.php et qui est hébergé sur le SERVEUR OVH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $test=@$_GET['test'];
    echo $test;
    ?>
    Ensuite je place un fichierAUTRE.php qui sera hébergé sur le serveur d'un autre hébergeur contenant le code javascript ci-dessous :

    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
     
    <script type="text/javascript">
    function envoi (idA)
     {
    var xhr_object = null;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else {alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return;}
    xhr_object.open("POST", "http://www.serveurOVH.com/fichierOVH.php?test="+idA, true);
    xhr_object.onreadystatechange = function() {if(xhr_object.readyState == 4) {alert('tat');document.getElementById("resultat").innerHTML = xhr_object.responseText;}}
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    var data = "test="+idA;
    xhr_object.send(data);
    }
    </script>
    <a href="javascript:;" onclick="envoi('toto');">recuperer le texte toto dans mon div</a><br>
    <div id="resultat" name="resultat"></div>
    Pourquoi je ne vois pas affiché dans le div appelé resultat le texte toto ????

    Avez vous une idée du pourquoi du comment je ne peux appeler un fichier a distant et lire un simple contenu html dans un div, s'il vous plait ?

    Merci beaucoup pour votre aide.
    Bonne journée
    Olivier

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Bonjour et merci pour cette réponse,

    Donc en gros ce n'est pas possible mais il y a quelque chose a creuser avec CORS !!!!

    Mon problème est le suivant :

    Je créé une application LOGICIEL en HTML/PHP/SQL qui est hébergée sur le serveur d'un client en FTP.

    Je créé d'autres fonctions uniquement HTML/PHP (statiques) que je souhaite héberger sur mon serveur car je ne veux pas que mes clients puissent lire le contenu de mon fichier PHP et me voler mes fonctions. Donc je cherchais a pouvoir envoyer des variables en GET vers le fichier hébergé chez moi, lire le résultat, et l'afficher dans un div sur un fichier hébergé chez mon client.

    En conclusion, vous me dites que c'est impossible en raison des sécurités serveur ?

    N'y a t'il pas une autre façon de contourner le pb ?

    Merci pour vos idées.
    Olivier

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Une requête cros-origin n'est pas impossible, il faut simplement l'autorisé avec le header PHP adéquat : Contrôle d'accès HTTP

    Exemple :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    header( 'Access-Control-Allow-Origin : *' );
    header( 'Content-Type: text/html; charset=utf-8' );
     
    ?>

    Généralement on utilise du JSON ou du JSONP, FAQ jQuery :

    Comment dois-je formuler une requête AJAX ?
    Exemple : transaction JSON et JSONP

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Bonsoir,

    Je ne comprends pas, j'ai testé ton exemple dans Exemple : transaction JSON et JSONP

    J'ai testé au moins une vingtaine de codes différents que j'ai trouvé sur gg en tapant exemple header( 'Access-Control-Allow-Origin : *' );

    et aucun code ne m'a affiché le résultat présent dans le fichier que j’essaie d'appeler, j'ai les boulesss !!

    Il faut que j'arrive a appeler ce fichier 2 et lire le contenu sur le fichier 1 (DIV) ...

    N'y a t'il pas un simple code qui me permette de tester si cela fonctionne avec AJAX ?

    Exemple : J'ai testé le code source présent dans cette page : http://arunranga.com/examples/access...nvocation.html
    en le mettant sur http://www.iobnet.com/test.php et j'ai une erreur "Invocation Errors Occured" alors qu'il fonctionne sur http://arunranga.com/examples/access...nvocation.html

    Je ne comprends pas est ce le serveur www.iobnet.com (mon second serveur) qui interdit le cross ???

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonjour,

    Tu peux écrire une page php qui va lire le fichier distant avec une instruction curl et te renvoie tout ou partie des données reçues.
    C'est cette nouvelle page que tu appelleras par ajax et du coup, tu ne seras plus cross domain...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Bonjour EddiGordo,

    As tu un exemple avec CURL, car il me semble que cela ne peut pas fonctionner avec cette seule fonction ?

    Merci beaucoup.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Un truc comme :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
            $url = "http://www.google.fr";
            $theCurl = curl_init();
            curl_setopt($theCurl, CURLOPT_HEADER, 0);
            curl_setopt($theCurl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($theCurl, CURLOPT_URL, $url);
            $page = curl_exec($theCurl);
            curl_close($theCurl); 
     
            echo $page;
    ?>
    te renvoie le contenu texte de la page d'accueil de google.
    $page est une variable string qui contient tout le html de la page lue, qui peut être découpée ou parsée pour ne récupérer que ce qu'on a besoin.

    Tu n'as peut-être pas vu que je t'avais mis un lien vers la doc de curl, je te le remets ici.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion entre deux fichiers ici des ODB différents
    Par mpaka dans le forum HyperFileSQL
    Réponses: 1
    Dernier message: 08/10/2015, 10h23
  2. Comment récupérer les infos des balises
    Par safisa20 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2014, 19h23
  3. Annulation des doublant entre deux fichiers
    Par ryodo dans le forum Langage
    Réponses: 11
    Dernier message: 08/05/2012, 03h39
  4. Réponses: 0
    Dernier message: 31/05/2011, 19h13
  5. Récupérer des infos sans ouvrir les fichiers
    Par hakuna_du_94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/12/2008, 08h56

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