I also tried the following code and get no response, can anyone tell me what
I did wrong?
<?
# http_post - PHP3 class for posting a 'form' from within a php3 script
#
# Alan van den Bosch ([EMAIL PROTECTED])
#
# You are granted the right to use and/or redistribute this
# and you accept that no warranty of any kind is made or implied
#
# Methods:
# http_post()
#    Returns true on success.
#        $a=new http_post;
#
#    Set the server of the URI you wish to post to. see also set_action()
#    ie.
#    or
#
# set_port(string PORT)
#    Returns true on success.
#        $a->set_port("8080");
#
#    Set the filename of the URI you wish to    post to. see also
set_action()
#    ie.
#
# set_action(string ACTION)
#    Returns true on success.
#        $a->set_action("http://www.somehost.org:8080/incoming.php3";);
# set_enctype(string ENCTYPE)
#    "application/x-www-form-urlencoded" or "multipart/form-data"
#    ie.
#
# set_element(string NAME, string VALUE)
#    Returns true on success.
#        $a->set_element("username","John Doe");
#
#    Set or update a number of name/value pairs to be posted
#    ie.
#                      "password" => "dead-ringer",
#
# set_timeout(integer TIMEOUT)
#    when posting. minimum value of 1 second.
#    ie.
#
#    Show the current internal state of an instance, for debugging.
#    ie.
#
# send(boolean DISPLAY)
#    can be echoed by setting DISPLAY to a true value.
#    on failure.
#        $a->send(1);


class http_post
{
   function http_post(){
       $this->_method="post";
       $this->_server="127.0.0.1";
       $this->_file="\\";
       $this->_port="80";
       $this->_enctype="application/x-www-form-urlencoded";
       $this->_element=array();
       $this->_timeout=20;
   }

   function set_server($newServer=""){
       if(strlen($newServer)<1)$newServer=$HTTP_HOST;
       $this->_server=$newServer;
       return 1;
   }

   function set_port($newPort="80"){
       $newPort=intval($newPort);
       if($newPort < 0 || $newPort > 65535)$newPort=80;
       $this->_port=$newPort;
       return 1;
   }

   function set_file($newFile="\\"){
       $this->_file=$newFile;
       return 1;
   }

   function set_action($newAction=""){
       $pat="^((http://){1}([^:/]{0,}){1}(:([0-9]{1,})){0,1}){0,1}(.*)";

       if(eregi($pat,$newAction,$sub)){
           if(strlen($sub[3])>0)$this->_server=$sub[3];
           if(strlen($sub[5])>0)$this->_port=$sub[5];
           $this->_file=$sub[6];
           return 1;
       }
       return 0;
   }

   function set_enctype($newEnctype="application/x-www-form-urlencoded"){
       if($newEnctype != "application/x-www-form-urlencoded" &&
           $newEnctype != "multipart/form-data"){
           $newEnctype="application/x-www-form-urlencoded";
       }
       $this->_enctype=$newEnctype;
       return 1;
   }

   function set_element($key="",$val=""){
       if(is_array($key)){
           $len=sizeof($key);
           reset($key);
           for($i=0;$i<$len;$i++){
               $cur=each($key);
               $k=$cur["key"];
               $v=$cur["value"];
               $this->_element[$k]=$v;
           }
       }
       else{
           if(strlen($key)>0)$this->_element[$key]=$val;
       }
       return 1;
   }

   function set_timeout($newTimeout=20){
       $newTimeout=intval($newTimeout);
       if($newTimeout<1)$newTimeout=1;
       $this->_timeout=$newTimeout;
       return 1;
   }

   function show_post(){
       $str="";
       $str.="Action:".$this->_action."<br>";
       $str.="Server:".$this->_server."<br>";
       $str.="Port:".$this->_port."<br>";
       $str.="File:".$this->_file."<br>";
       $str.="Enctype:".$this->_enctype."<br>";

       echo $str;

       $len=sizeof($this->_element);
       reset($this->_element);
       for($i=0;$i<$len;$i++){
           $cur=each($this->_element);
           $key=$cur["key"];
           $val=$cur["value"];
           echo"Field:$key = $val<br>\n";
       }
       return 1;
   }

   function send($display=0){
       // open socket to server
       $errno=$errstr=$retstr="";
       $sk = fsockopen($this->_server,
               $this->_port,
               &$errno,
               &$errstr,
               $this->_timeout
               );
       if(!$sk){
           return 0;
       }
       else{
           $boundary="----".md5(uniqid(rand()))."----";
           $message=$this->_get_message($boundary);
           $str="";
           $str.=strtoupper($this->_method)." ";
           $str.=$this->_file." HTTP/1.0 \r\n";
           $str.="Referer: \r\n";
           $str.="User-Agent: php-HTTP_POST/1.0 \r\n";
           $str.="Host: ".$this->_server."\r\n";

           $str.="Content-type: ".$this->_enctype;
           if($this->_enctype=="multipart/form-data"){
               $str.="; boundary=".$boundary;
           }
           $str.=" \r\n";

           $str.="Content-length: ".strlen($message)."\r\n\r\n";
           $str.=$message;

           fputs($sk,$str);

           while(!feof($sk)){
               $resp=fgets($sk,80);
               $retstr.=$resp;
               if($display)echo $resp;
           }

           fclose($sk);
           return $retstr;
       }
   }

   function _get_message($boundary=""){
       $retstr="";

       $len=sizeof($this->_element);
       reset($this->_element);

       $switch=($this->_enctype=="multipart/form-data")?0:1;

       for($i=0;$i<$len;$i++){
           $cur=each($this->_element);
           $key=$cur["key"];
           $val=$cur["value"];

           if($switch){
               if(strlen($retstr)!=0)$retstr.="&";
               $retstr.=rawurlencode($key)."=";
               $retstr.=rawurlencode($val);
           }
           else{
               $retstr.=$boundary."\r\n";
               $retstr.="Content-Disposition: form-data; ";
               $retstr.="name=\"$key\"\r\n\r\n$val\r\n\r\n";
           }
       }
       if(!$switch)$retstr.=$boundary."\r\n";
       return $retstr;
   }
}




$request=urlencode("<barceloDS_requests><request type='destination list'
id='8'><language_code>ESP</language_code><agency><primary>888</primary><seco
ndary>88</secondary><detail>888</detail><branch>1</branch></agency></request
></barceloDS_requests>");


$http = new HTTP_Post();

$http->set_action('http://195.57.250.36//barceloDS/interface/xml');
$http->set_element('xml',$request);
$resp = $http->send();


?>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to