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 :

JS=>PHP : Mettre la source d'une page (iframe) dans 1 var


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut JS=>PHP : Mettre la source d'une page (iframe) dans 1 var
    Bonjour,
    je suis programmeur PHP, mais j'ai pensé que ce script serait plus tourné JS que PHP.

    J'aimerai donc récupérer la source (ou le texte, au pire) d'une page DISTANTE (ex: http://www.google.fr )

    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <iframe id='apo' src='http://www.google.fr'></iframe>
    <span id='sp'></span>
    <script> document.getElementById('sp')=window.document.iframe['apo'].innerHTML; </script>";
    Marche po...

    Quelqu'un m'a dit d'essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <iframe id='apo' src='http://www.google.fr'></iframe>
    <span id='sp'></span>
    <script>
    document.getElementById('sp').innerHTML=document.getElementById("apo").contentWindow.document.innerHTML;
     </script>
    Marche pas non plus...

    Quelqu'un peut m'aider ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    pour récupérer le source html d'une page distante je dirais plutot ça:

    fopen('http://www.google.fr','r');

    http://fr2.php.net/manual/fr/function.fopen.php

    pour la directive de configuration du phpini nécessaire pour la lecture de fichiers distants :
    http://fr2.php.net/manual/fr/ref.filesystem.php#ini.allow-url-fopen

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Ca donne ça
    Warning: fopen(http://www.google.fr) [function.fopen]: failed to open stream: Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusée. in MONSERVEUR/MONFICHIER.php on line 2
    Avec ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $open=fopen('http://www.google.fr','r');
    ?>

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    je sais pas quoi te dire chez moi ça marche très bien.

    donnes toujours l'erreur en anglais, ta traduction ne me dis rien.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Ben, c'est pas une traduction, ça me donne ça ! lol
    J'utilise Wamp 5; 1.3.2, après c'est tout lol...

    Pfff, d'où peut venir l'erreur ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    t'as bien allow_url_fopen à on dans ton phpini(plus redemmarage d'apache en cas de modif)?

    est ce que ça te fait ça seulement pour google ou aussi pour d'autres sites?

    ...après je sais pas j'ai pas wamp sous la main.

  7. #7
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Ouai ouai avec On et avec tous les sites... bon je vais p-e installer une dernière version mais ça implique un changement mysql => mysqli et faut que je me renseigne à propos

    +

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    faut peut-être pas aller jusque là

    mais c'est peut-être un truc tout bête, je sèche mais quelqu'un qui a eu le même problème que toi te répondra peut-être.

    maintenant si tu veux passer à mysql5 c'est autre chose...mais le problème peut revenir si c'est pas dû à la version de wamp

    au cas où:
    http://www.google.fr/search?hl=fr&q=Aucune+connexion+n%27a+pu+%C3%AAtre+%C3%A9tablie+car+l%27ordinateur+cible+l%27a+express%C3%A9ment+refus%C3%A9e&btnG=Rechercher&meta=

  9. #9
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Salut, je penche sur un problème, et je viens d'apprendre quelque chose d'intéressant : les XMLHttpRequest. Cet objet résoudra sans doute ton problème de manière propre (valable uniquement FireFox et Internet Explorer). Mais il s'agit peut être d'un outil bien plus puissant que nécessaire. A voir ...

    Bonne chance.

  10. #10
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Ouh là... tu oublie que je suis très novice en Javascript
    Peux tu m'aider quant à son utilisation ?

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    pour xhr regarde toujours ce post, t'as des liens vers des exemples:
    http://www.developpez.net/forums/viewtopic.php?t=425320

    sinon pour ton cas je ne vois pas très bien ce que xhr pourrait faire.

  12. #12
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Bon j'ai réinstallé une nouvelle version de wamp et ça marche...
    Maintenant, je voudrais sur un site qui requiert une authentification par $_SESSIONS... et quand je fopen comme ça, ça me met Automatiquement en "délogué", (même si je me suis loggué avant, ou avec une iframe d'autologin avant..)

    Y-a-t-il un moyen ?

    Merci de continuer à m'aider

    PS : si un modérateur veut déplacer ce topic vers PHP il peut

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    Citation Envoyé par Tizard
    Y-a-t-il un moyen ?
    jamais eu à faire ça, mais si j'ai à le faire je me baserais sur plusieurs trucs.

    déja je jette fopen pour passer par les sockets.

    ça c'est pour générer mes requêtes http.

    ensuite j'approfondi la rfc(en bas de l'article) sur http en ce qui concerne l'envoi de variable par post et la gestion des cookies.

    ça c'est pour me logguer et gérer le cookie de session.

    enfin je jette un oeil sur les vols et fixation de session.

    ça c'est pour le principe.

    tu me tiens au courant je trouve ça amusant.
    par contre je garanti rien et ya peut-etre plus simple

  14. #14
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Oh là, ça me parait compliqué lol :p
    J'ai que 16 ans M'enfin j'essaierai
    ps: si quelqu'un peut m'aider quant à l'utilisation de ces sockets par msn qu'il m'ajoute, merci

    @++

  15. #15
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Bon... j'arrive à me loguer sur le serveur en passant par un socket (script trouvé sur internet)
    MAIS pitit problème, ça ne m'affiche pas la page loguée ensuite puisque sur le serveur web il y a une redirection locale, ça me redirige localement vers la page profil.php -_-...

    Voici le code de socket :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     <?php
     function posttohost($url , $data) {
    // Get parts of URL
    $url = parse_url($url);
    if (!$url) {
    return FALSE;
    }
     
    // Provide defaults for port and query string
    if (!isset($url['port'])) {
    $url['port'] = '';
    }
    if (!isset($url['query'])) {
    $url['query'] = '';
    }
     
    // Build POST string
    $encoded = '';
    foreach ($data as $k => $v) {
    $encoded .= ($encoded ? '&' : '');
    $encoded .= rawurlencode($k) . '=' . rawurlencode($v);
    }
     
    // Open socket on host
    $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
    if (!$fp) {
    return FALSE;
    }
     
    // Send HTTP 1.0 POST request to host
    fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
    fputs($fp, "Host: {$url['host']}\n");
    fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
    fputs($fp, "Content-length: " . strlen($encoded) . "\n");
    fputs($fp, "Connection: close\n\n");
    fputs($fp, "$encoded\n");
     
    // Read the first line of data, only accept if 200 OK is sent
    $line = fgets($fp, 1024);
    if (!eregi("^HTTP/1\\.. 200", $line)) {
    return FALSE;
    }
     
    // Put everything, except the headers to $results
    $results = '';
    $inheader = TRUE;
    while(!feof($fp)) {
    $line = fgets($fp, 1024);
    if ($inheader && ($line == "\n" || $line == "\r\n")) {
    $inheader = FALSE;
    } elseif (!$inheader) {
    $results .= $line;
    }
    }
    fclose($fp);
     
    // Return with data received
    return $results;
     
    }
    $posts=array( "nom" => "Damned Wolf" , "mdp" => '*****', "ok" => "Entrer");
    $post=posttohost("http://www.apocalypsis.org/1/connexion.php" , $posts);
    //echo "$post ";
    ?>

  16. #16
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Ca marche !!
    J'ai trouvé
    Bon j'explique

    (l'ennui est que ça ne va pas marcher indéfiniement)

    Je trouve le cookie de session d'apocalypsis sur mon ordinateur,
    il me donne la valeur de session (PHPSESSID)
    je l'envoie à la page par POST (PHPSESSID=MAVALEUR)
    Et j'obtiens la source qui apparait à mon écran :p

    Quelqu'un sait comment récupérer dynamiquement la valeur d'un cookie ?

    Merci

    (SOURCE :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     <?php
     function posttohost($url , $data) {
    // Get parts of URL
    $url = parse_url($url);
    if (!$url) {
    return FALSE;
    }
     
    // Provide defaults for port and query string
    if (!isset($url['port'])) {
    $url['port'] = '';
    }
    if (!isset($url['query'])) {
    $url['query'] = '';
    }
     
    // Build POST string
    $encoded = '';
    foreach ($data as $k => $v) {
    $encoded .= ($encoded ? '&' : '');
    $encoded .= rawurlencode($k) . '=' . rawurlencode($v);
    }
     
    // Open socket on host
    $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
    if (!$fp) {
    return FALSE;
    }
     
    // Send HTTP 1.0 POST request to host
    fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
    fputs($fp, "Host: {$url['host']}\n");
    fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
    fputs($fp, "Content-length: " . strlen($encoded) . "\n");
    fputs($fp, "Connection: close\n\n");
    fputs($fp, "$encoded\n");
     
    // Read the first line of data, only accept if 200 OK is sent
    $line = fgets($fp, 1024);
    if (!eregi("^HTTP/1\\.. 200", $line)) {
    return FALSE;
    }
     
    // Put everything, except the headers to $results
    $results = '';
    $inheader = TRUE;
    while(!feof($fp)) {
    $line = fgets($fp, 1024);
    if ($inheader && ($line == "\n" || $line == "\r\n")) {
    $inheader = FALSE;
    } elseif (!$inheader) {
    $results .= $line;
    }
    }
    fclose($fp);
     
    // Return with data received
    return $results;
     
    }
    $posts=array("PHPSESSID" => "b6450463b23c61d03c841f835d213516");
    $post=posttohost("http://www.apocalypsis.org/1/contrebande/tarifs.php" , $posts);
    echo "$post";
    ?>

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    j'ai pas très bien compris ce que tu faisais.

    par contre j'ai vu que tu mettais l'id du cookie de manière statique(tu vas chercher l'id avec l'explorateur ou t'essaye de fixer une session?).

    si tu veux le faire dynamiquement il faut que tu jette un oeil à la rfc http pour ce qui est des cookies.

    tu verras que suite à ta requete, si un cookie est envoyé tu recevra une réponse du type setcookie...
    c'est cette chaine que tu doit analyser pour déterminer l'id de session.

    un exemple de réponse avec google:

    HTTP/1.0 200 OK
    Cache-Control: private Content-Type: text/html
    Set-Cookie: PREF=ID=4dcae9d049822957:TM=1133962291:LM=1133962291:S=mDQ2xKmmDQK0LEbq;
    expires=Sun, 17-Jan-2038 19:14:07 GMT;
    path=/;
    domain=.google.fr Server: GWS/2.1 Date: Wed, 07 Dec 2005 13:31:31 GMT

    comme tjs je garantis pas que ça peut marcher, en plus j'ai pas trop le temps

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/04/2010, 11h29
  2. [PHP-JS] Récupérer le source d'une page
    Par sourivore dans le forum Langage
    Réponses: 4
    Dernier message: 13/10/2006, 19h05
  3. Réponses: 6
    Dernier message: 12/10/2006, 14h01
  4. Réponses: 2
    Dernier message: 07/08/2006, 22h36
  5. [VBA Excel] Récuperer le code source d'une page html dans un string
    Par viniboy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/07/2006, 19h11

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