Avatar billede pkbrix Nybegynder
23. september 2005 - 06:40 Der er 5 kommentarer og
1 løsning

asp til php (poste xml fil til ssl url)

Er der nogen der kan oversættet følgen asp kode til php? Har prøvet at oversætte med asptophp, men fik ikke et brugbart resultat.
<%
    dim xml
    Response.Buffer = True
    'Response.ContentType = "text/xml"

    if not isEmpty(request("file")) then
        Set xml = Server.CreateObject("Microsoft.XMLHTTP")
        xml.Open "POST", "https://www.server.com/secure/api.asp", false
        xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
   
        vcXML = ReadTextFile(Server.MapPath(request("file")))
   
        xml.Send "xml=" & server.URLEncode(vcXML)
   
        response.write xml.ResponseText
   
        set xml = Nothing
    else
%>
sample_list.xml: <a href="sample_list.xml">Se input-fil</a> - <a href="<%= request.servervariables("SCRIPT_NAME") %>?file=sample_list.xml">Send til API</a><br>
<%
    end if

    function ReadTextFile (vcFile)
        dim fso, f
        dim vcBody

        set fso = Server.CreateObject ("Scripting.FileSystemObject")
        set f = fso.OpenTextFile (vcFile, 1)
        vcBody = f.ReadAll()
        f.Close()
        set f = nothing
        set fso = nothing

        ReadTextFile = vcBody
    end function
%>

mvh.
Avatar billede jakobdo Ekspert
25. september 2005 - 09:57 #1
Jeg er ikke lige den store ASP haj, men det som scriptet skal, er vel i bund og grund:
Hente en XML fil og sende den videre til en server?
Avatar billede pkbrix Nybegynder
25. september 2005 - 18:48 #2
Ja, den vigtigste del er opkaldet asp serveren, resten kan nok skrive mig igennem.
Avatar billede jakobdo Ekspert
25. september 2005 - 19:57 #3
Denne kode poster!

$host = "somehost.somedomain.com";
$port = 443;
$path = "/the/url/path/file.php"; //or .dll, etc. for authnet, etc.
//you will need to setup an array of fields to post with
//then create the post string
$formdata = array ( "x_field" => "somevalue");
//build the post string
foreach($formdata AS $key => $val){
  $poststring .= urlencode($key) . "=" . urlencode($val) . "&";
}
// strip off trailing ampersand
$poststring = substr($poststring, 0, -1);
$fp = fsockopen("ssl://".$host, $port, $errno, $errstr, $timeout = 30);
if(!$fp){
//error tell us
echo "$errstr ($errno)\n";
 
}else{
//send the server request
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ".strlen($poststring)."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $poststring . "\r\n\r\n");
//loop through the response from the server
while(!feof($fp)) {
  echo fgets($fp, 4096);
}
//close fp - we are done with it
fclose($fp);
}

Den kan så poste til siden: https://www.server.com/secure/api.asp.
Avatar billede pkbrix Nybegynder
28. september 2005 - 04:50 #4
Takker for hjælpen, kan poste nu.
Sender du et svar til point.

mvh.
Avatar billede jakobdo Ekspert
28. september 2005 - 06:53 #5
Svar!
Avatar billede jakobdo Ekspert
28. september 2005 - 21:39 #6
Takker for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester