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