Recevoir les données HTTP au format XML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recevoir les données HTTP au format XML

Re: Recevoir les données HTTP au format XML

par ferv21 » 15 août 2010, 20:44

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+1 merci de ta réponse rapide :P

Re: Recevoir les données HTTP au format XML

par stealth35 » 15 août 2010, 20:38

ca dépend du doctype de ta page sois xhtml = xml, html = dom
avec DomDocument il gere les 2 donc pas de soucis
avec SimpleXML il faut convertir de DOM en XML (via DomDocument et simplexml_import_dom)

Re: Recevoir les données HTTP au format XML

par ferv21 » 15 août 2010, 20:17

Dans un premier temps je veux récupérer les données $data de la fonction curl_exec en format xml, puis ensuite traité ces informations et choisir une action approprié en fonction des données. Je voudrais par la suite automatiser la tâche, tu l'a deviner de tout de façon. :mrgreen:
J'aimerais savoir si c'est possible de récupérer en format xml ...
Merci

Re: Recevoir les données HTTP au format XML

par stealth35 » 15 août 2010, 20:11

ensuite ? tu veux faire quoi derrière ? :wink:

Re: Recevoir les données HTTP au format XML

par ferv21 » 15 août 2010, 19:52

Heuu pour l'instant je me suis simplement logué sur le site ogame, en envoyant les données avec la méthode POST rien de plus ...

index.php
require_once 'ogame.php';

$bot                 = new Ogame ();
$bot->site           = 'xxxxxxxxxxxxxx';
$bot->identification = array(
             'v'           => xxx,
             'is_utf8'   => xxxx,
             'uni_url'   =>'xxxxxxxxxxxxxx',
             'login'      =>'xxxx',
             'pass'      =>'xxxx,);
$bot->startCurl();
$bot->auth();
echo htmlentities($bot->execute());
$bot->end();
ogame.php
<?php

/**
 * @author def
 * @copyright 2010
 */
 
 class Ogame{
    public 
    $site            = '',
    $identification  = '';
   
    private $session = '',
            $data    = '';
    
    
    public function __construct(){

        
    }
    
    public function startCurl(){
        $this->session = curl_init();       
    }
    
    public function auth(){
        
        curl_setopt($this->session, CURLOPT_HEADER              ,1);
        curl_setopt($this->session, CURLOPT_URL                    ,$this->site);
        curl_setopt($this->session, CURLOPT_POST                  ,true);
        curl_setopt($this->session, CURLOPT_POSTFIELDS        ,$this->identification);
        curl_setopt($this->session, CURLOPT_COOKIEJAR          ,realpath('cookie.txt'));
        curl_setopt($this->session, CURLOPT_COOKIESESSION   ,true);
        curl_setopt($this->session, CURLOPT_FOLLOWLOCATION ,true); 
        curl_setopt($this->session, CURLOPT_RETURNTRANSFER ,true); 
        curl_setopt($this->session, CURLOPT_HTTPHEADER       , Array("Content-Type:application/xml")); 
    }
    
    
    public function execute(){
         $this->data = curl_exec($this->session); 
         return $this->data;
    }

    public function getCurrentUrl(){
        $info               = curl_getinfo($this->session);
        $this->url          = $info['url'];
        return $this->url;
    }
   
    
    public function end(){
        curl_close($this->session);
    }
   
    
 }

?>

Re: Recevoir les données HTTP au format XML

par stealth35 » 15 août 2010, 17:14

ca marche pas comme ca, tu va utiliser qu'elle extension XML derrière ?

Recevoir les données HTTP au format XML

par ferv21 » 15 août 2010, 16:49

Bonjour
J'essaye actuellement de modifier l'entête HTTP avec la librairie CURL pour recevoir des données bien structuré au format XML.
Mais je ne reçois pas de flux xml à part la réponse du serveur:
HTTP/1.1 100 Continue HTTP/1.1 200 OK Date: Sun, 15 Aug 2010 14:54:13 GMT Server: Apache Set-Cookie: PHPSESSID=e88ad4c2d0a0dbb9ceaee7ea79e12973; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Vary: Accept-Encoding Content-Length: 0 Connection: close Content-Type: text/html; charset=utf-8 http://uni19.ogame.fr/game/reg/login2.php

Voici mon code:
  public function auth(){
        curl_setopt($this->session, CURLOPT_HEADER         , 1);
        curl_setopt($this->session, CURLOPT_URL            , $this->site);
        curl_setopt($this->session, CURLOPT_POST           , true);
        curl_setopt($this->session, CURLOPT_POSTFIELDS     , $this->identification);
        curl_setopt($this->session, CURLOPT_COOKIEJAR      , realpath('cookie.txt'));
        curl_setopt($this->session, CURLOPT_COOKIESESSION  , true);
        curl_setopt($this->session, CURLOPT_FOLLOWLOCATION , true); 
        curl_setopt($this->session, CURLOPT_RETURNTRANSFER , true); 
        curl_setopt($this->session, CURLOPT_HTTPHEADER     , Array("Content-Type:application/xml")); 
    }
Array("Content-Type:application/xml")); 
Le content type est toujours text/html ... la modification de l'entête n'a rien donnée.
Merci