Datei via SSL an ein htaccess-geschütztes PHP-Skript senden

  • Hallo zusammen,

    ich möchte via WinHttp auf einen durch .htaccess geschützten Bereich auf einen Server zuzugreifen. Und das klappt (nach langer Recherche und vielen Versuchen) sogar. :) Der Code dazu steht unten.

    Nun meine Frage: muss ich wirklich vor jeder Anfrage eine erneute Authentifizierung durchführen oder mache ich da was falsch? Ich vermute mal, dass es an dem „Open“- Befehl liegt, und dass ich eher mit „Send“ arbeiten müsste, aber ich finde irgendwie keine vernünftige Anleitung oder ein Thema in der Hilfe, wie in Autoit mit WinHttp umgegangen wird. Was ich gefunden habe, ist die Seite von MS: http://msdn.microsoft.com/en-us/library/…2(v=VS.85).aspx – hier konnte ich schon einige Infos rausziehen. Aber vielleicht hat ja jemand ein kurzes Beispiel, wie man via WinHttp Webinhalte richtig ausliest und Daten auf den Webserver schickt.

    Vielen Dank für jede Hilfe
    trainer

    [autoit]


    ;WinHttp-Objekt erzeugen
    $http = ObjCreate("WinHttp.WinHttpRequest.5.1")

    [/autoit][autoit][/autoit][autoit]

    ;Seite 1 ansteuern
    $http.Open("GET", "URL_1", false)

    [/autoit][autoit][/autoit][autoit]

    ;htaccess-Autentifizierung
    $http.SetCredentials("username", "passwort", 0)
    $http.Send()

    [/autoit][autoit][/autoit][autoit]

    ;Status und Header anzeigen
    ConsoleWrite($http.Status + " --> " + $http.StatusText & @LF)
    ConsoleWrite($http.GetAllResponseHeaders & @LF)
    ConsoleWrite($http.ResponseText & @LF)

    [/autoit][autoit][/autoit][autoit]

    $ergebnis_1 = $http.ResponseText
    ConsoleWrite($ergebnis_1 & @LF)

    [/autoit][autoit][/autoit][autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit][autoit][/autoit][autoit]

    ;Seite 2 ansteuern
    $http.Open("GET", "URL_2", false)

    [/autoit][autoit][/autoit][autoit]

    ;htaccess-Autentifizierung
    $http.SetCredentials("username", "passwort", 0)
    $http.Send()

    [/autoit][autoit][/autoit][autoit]

    $ergebnis_2 = $http.ResponseText
    ConsoleWrite($ergebnis_2 & @LF)

    [/autoit]

    5 Mal editiert, zuletzt von ip_trainer (15. Januar 2011 um 01:27) aus folgendem Grund: Überschrift an Lösung angepasst

  • Hi,

    dank Cyberdyne's Hilfe bin ich jetzt schon soweit, dass ich ASCII-Text als POST-Variable in php auswerten kann. Jetzt hänge ich daran fest, wie man Binär-Dateien (zip) via WinHTTP hochladen kann. :S

    Ich weiß, es gibt viele Artikel dazu, aber irgendwie schaffe ich es nicht so ganz. Was ich schon erreicht habe ist, dass die Datei zum Server gesendet wird und als $_POST auftaucht (und nicht in $_FILES, wie ich erwartet hatte). Allerdings sieht das Ergebnis noch recht kryptisch aus. Ich vermute es fehlt nicht mehr viel, um diesen Datenstrom wieder als .zip-Datei in php zu speichern. Kann mir vielleicht jemand helfen, in welchem Format diese Daten auf dem Server ankommen, oder was ich sonst noch falsch mache?


    Danke
    trainer


    Ein weiterer link dazu (der mich weiter gebracht hat): [ gelöst ] Problem mit WinHTTP Upload

    Mein Code (mit dem ich "export.zip" auf den Server lade):

    [autoit]


    #include "WinHttp.au3"

    [/autoit][autoit][/autoit][autoit]

    Global $hOpen = _WinHttpOpen()

    [/autoit][autoit][/autoit][autoit]

    ; Get connection handle
    Global $hConnect = _WinHttpConnect($hOpen, http://www.domain.de)

    [/autoit][autoit][/autoit][autoit]

    ; Specify the reguest
    Global $hRequest = _WinHttpOpenRequest($hConnect, "POST", "test.php")
    Global $sPostData = FileRead("export.zip")

    [/autoit][autoit][/autoit][autoit]

    ; Send request
    _WinHttpSendRequest($hRequest, "Content-Type: application/x-www-form-urlencoded", $sPostData)

    [/autoit][autoit][/autoit][autoit]

    ; Write additional data to send
    _WinHttpWriteData($hRequest, $sPostData, 1)

    [/autoit][autoit][/autoit][autoit]

    ; Wait for the response
    _WinHttpReceiveResponse($hRequest)
    ;Close
    _WinHttpCloseHandle($hRequest)
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hOpen)

    [/autoit]


    Und hier das Ergebnis von $_POST auf dem Server: :rolleyes:

    array (
    'PK' => '©1¸Ç˜' . "\0" . '' . "\0" . '¾' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . 'Neues Textdokument.txtíWKnÛ0ÝÈæ' . "\0" . 'Fî´Ë¢›¢“cg~’ã69}e)6‚)ÐÔZ‚MIä¼Ï<Éæ‡\\$’Õ"ùr¡ª8JÛË©J“f¸Èsœ¦=IÐV6TÅ“WŽ”r²øH¢%fOMâ€"šê-5²F·' . "\0" . '!i "ï}°GÂí¬Þ!šñ
    Ý6:HÉ$¹öÕìœULÀð‹Õ–É[žJŽ÷…©ÈÖâ
    }j8uàÉtÏÕÓÞ¶RöEÒl©bbã{Œû•“k†õµÑϽ¸¡Õ§Õ§·ô‰èúêúê½i%6ˆ³@b˜^ÔŠôù£lº“ä‹,ÄÉÁÂ`›ôé¸$µB~@S9úû`P?VÓf`AiÚ‰í•% iÇNƒÖŽ?ÛRN¾DèècÉ^3ÌÜ\'&shy;U#=˜Ò6pò`0–*h L1' . "\0" . '>=
    ä%HêjmoP3“',
    'w ü0<SvÆÄ´Ÿ»ô¹ÑWð#Š€¦¨}pÀ)ÇMw£¶¶bžä›§\'4\'êò¢Ëe(±ê@øñm}Ö' => 'GêÁ8£¹üòC`7fa׿iÈ£$®Hæcú·ºœ—ÙÌeI¯úWã²þ$þžO·ÏÄŸCçô1ÑŸUtE“‘]ôÑH›<óÙ`\\Ä1Û<29}._p´3ý£Ç èä×lBw¦cœÜ±cN=ùs>½mžæGíÝå ÿݯ>ý>ÍÐjǛէËû´œÿ&shy; Ú^½žKïnÖMøS²n—° ÿPK' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . 'Q®u=©1¸Ç˜' . "\0" . '' . "\0" . '¾' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . ' ' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . 'Neues Textdokument.txtPK' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . 'D' . "\0" . '' . "\0" . '' . "\0" . 'Ì' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '',
    )

    2 Mal editiert, zuletzt von ip_trainer (21. November 2010 um 21:53)

  • Eine Datei darfst du nicht mit application/x-www-form-urlencoded senden Du brauchst dafür multipart/form-data

    Schau dir doch mal an, wie das dort gemacht ist ;)

  • Hi progandy,

    danke für deine Antworten. Einen weiteren Teil (eine Datei hochladen) habe ich nun geschafft :) ... Trotzdem bin ich nach fast 2 vollen Tagen immer noch nicht am Ziel: eine zip-Datei SSL-verschlüsselt an ein .htaccess-geschütztes php-Skript auf dem Server zu senden.. ;(

    Was klappt ist:
    - SSL-verschlüsslelt ASCII-Daten via POST an ein .htaccess-geschütztes php-Skript senden (Skript 1).
    - NICHT-SSL-verschlüsselt eine Datei an ein NICHT-.htaccess-geschütztes php-Skript senden (Skript 2).

    Was eben noch nicht klappt ist die Mischung aus beidem.

    Vielleicht kannst du mir ja weiterhelfen. Das wäre echt super - ich habe schon alles mögliche versucht: _WinHttpSimpleSendSSLRequest ins Skript 2, bzw, _WinHttpWriteDataBin ins Skript 1 reinzuwursteln, etc. - und ich habe absolut keine Idee mehr...

    Gruß
    trainer

    Skript 1:

    Spoiler anzeigen
    [autoit]

    $http = ObjCreate("WinHttp.WinHttpRequest.5.1")
    $http.Open("POST", "https://www.domain.de/test.php", false)
    $http.SetRequestHeader ("Content-Type", "application/x-www-form-urlencoded")
    $http.SetCredentials("user", "passwort", 0)
    $http.Send("content=123")
    ConsoleWrite($http.ResponseText & @CR)

    [/autoit]


    Skript2:

    Spoiler anzeigen
    [autoit]


    #include-once
    #include "Array.au3"
    #include "WinHTTP.au3"

    [/autoit] [autoit][/autoit] [autoit]

    Dim $file[1][2] = [["file_upload","export.zip"]]
    $test = post_multipart("http://www.domain.de/test.php", "", 0, $file)
    ConsoleWrite($test[0] & @CR)
    ConsoleWrite($test[1] & @CR)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Global $MIMETypes[1][2] = [["zip", "application/zip"]]
    _ArraySort($MIMETypes, 0, 0, 0, 2)

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Func post_multipart($host, $selector, $fields, $files)
    Local $Return = encode_multipart_formdata($fields, $files)
    Local $content_type = 'Content-Type: ' & $Return[0] & @CRLF
    $body = $Return[1]
    Local $URL = _WinHttpCrackUrl($host)
    Local $hSession = _WinHttpOpen()
    Local $hConnection = _WinHTTPConnect($hSession,$URL[2],$URL[3])
    Local $hRequest = _WinHttpOpenRequest($hConnection,"POST",$URL[6]&$URL[7],"HTTP/1.1","http://"&$URL[2])
    _WinHttpSendRequest($hRequest,$content_type,$WINHTTP_NO_REQUEST_DATA,StringLen($Return[1]))
    _WinHTTPWriteDataBin($hRequest,StringToBinary($Return[1]))
    _WinHttpReceiveResponse($hRequest)
    Local $Return[2]
    If _WinHttpQueryDataAvailable($hRequest) Then
    Local $temp
    While 1
    $temp = _WinHttpReadData($hRequest)
    If $temp = "" Then ExitLoop
    $Return[1] &=$temp
    WEnd
    $temp =""
    EndIf
    $Return[0] = _WinHttpQueryHeaders($hRequest)
    _WinHttpCloseHandle($hRequest)
    _WinHttpCloseHandle($hConnection)
    _WinHttpCloseHandle($hSession)
    Return $Return
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Func _WinHttpWriteDataBin($hRequest, $binary)
    Local $lpBinary
    Local $iNumberOfBytesToWrite
    If IsDllStruct($binary) Then
    $lpBinary = DllStructGetPtr($binary)
    $iNumberOfBytesToWrite = DllStructGetSize($binary)
    Else
    $iNumberOfBytesToWrite = BinaryLen($binary)
    Local $sBinary = DllStructCreate("byte[" & $iNumberOfBytesToWrite & "]")
    DllStructSetData($sBinary, 1, $binary)
    $lpBinary = DllStructGetPtr($sBinary)
    EndIf
    Local $a_iCall = DllCall("Winhttp.dll", "int", "WinHttpWriteData", _
    "hwnd", $hRequest, _
    "ptr", $lpBinary, _
    "dword", $iNumberOfBytesToWrite, _
    "dword*", 0)
    If @error Or Not $a_iCall[0] Then
    Return SetError(1, 0, 0)
    EndIf
    Return SetError(0, $a_iCall[4], 1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Func encode_multipart_formdata($fields, $files)
    Local Const $BOUNDARY = getBoundary()
    $L = ""
    For $i = 0 To UBound($fields) - 1
    $L &= ('--' & $BOUNDARY) & @CRLF
    $L &= ('Content-Disposition: form-data; name="' & $fields[$i][0] & '"') & @CRLF
    $L &= @CRLF
    $L &= $fields[$i][1] & @CRLF
    Next
    For $i = 0 To UBound($files) - 1
    $L &= ('--' & $BOUNDARY) & @CRLF
    $L &= ('Content-Disposition: form-data; name="' & $files[$i][0] & '"; filename="' & $files[$i][1] & '"') & @CRLF
    $content_type = get_content_type($files[$i][1])
    $L &= ('Content-Type: ' & $content_type) & @CRLF
    $L &= @CRLF
    $L &= FileRead($files[$i][1]) & @CRLF
    Next
    $L &= ('--' & $BOUNDARY & '--') & @CRLF
    $L &= @CRLF
    $content_type = 'multipart/form-data; boundary="' & $BOUNDARY & '"'
    Local $Return[2] = [$content_type, $L]
    Return $Return
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Func get_content_type($path)
    Local $szExt = StringLower(StringRegExpReplace( $path ,".*(?:\.([^.\\/]*))?\Z","$1"))
    If $szExt = "" Then Return 'application/octet-stream'
    Local $mimeid = _ArrayBinarySearch2D($MIMETypes, $szExt)
    If $mimeid = -1 Then Return SetError(1, 0, 'application/octet-stream')
    Return $MIMETypes[$mimeid][1]
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Func _ArrayBinarySearch2D(Const ByRef $avArray, $vValue, $iStart = 0, $Column = 0, $iEnd = 0)
    If Not IsArray($avArray) Then Return SetError(1, 0, -1)
    Local $iUBound = UBound($avArray) - 1
    ; Bounds checking
    If $iEnd < 1 Or $iEnd > $iUBound Then $iEnd = $iUBound
    If $iStart < 0 Then $iStart = 0
    If $iStart > $iEnd Then Return SetError(4, 0, -1)
    Local $iMid = Int(($iEnd + $iStart) / 2)
    If $avArray[$iStart][$Column] > $vValue Or $avArray[$iEnd][$Column] < $vValue Then Return SetError(2, 0, -1)
    ; Search
    While $iStart <= $iMid And $vValue <> $avArray[$iMid][$Column]
    If $vValue < $avArray[$iMid][$Column] Then
    $iEnd = $iMid - 1
    Else
    $iStart = $iMid + 1
    EndIf
    $iMid = Int(($iEnd + $iStart) / 2)
    WEnd
    ; Entry not found
    If $iStart > $iEnd Then Return SetError(3, 0, -1)
    Return $iMid
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Func getBoundary()
    return Stringleft(_TimeGetStamp()*random(10,256,1), 16)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    Func _TimeGetStamp()
    Local $av_Time
    $av_Time = DllCall('CrtDll.dll', 'long:cdecl', 'time', 'ptr', 0)
    If @error Then
    SetError(99)
    Return False
    EndIf
    Return $av_Time[0]
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    [/autoit]

    2 Mal editiert, zuletzt von ip_trainer (22. November 2010 um 13:17) aus folgendem Grund: inhaltl. Korrekturen

  • Hallo liebe Gemeinschaft,

    hat denn keiner eine Idee oder einen Ansatz für mich...? :(
    Ich habe es auch schon im englischsprachigen Forum versucht, aber irgendwie scheint das Problem nicht wirklich trivial zu sein :) ...

    Gruß
    trainer

  • Sorry, unter der Woche habe ich wegen menem Studium kaum Zeit. So schwer sollte es aber nicht sein.

  • Hi progandy - danke, dass du dich gemeldet hast. Studium geht natürlich vor, das ist klar. Mein Projekt hat auch nicht allerhöchste Wichtigkeitsstufe, es brennt also nicht. Aber, falls du irgendwann Zeit findest und mir ein Stück weiterhelfen kannst, bin ich dir sehr dankbar. :thumbup:

    Gruß
    trainer

  • Ich werde zur Vereinfachung mal auf die WinHTTP-Internen Funktionen zugreifen, dann sollte es etwa so funktionieren:

    [autoit]

    $sBoundary = "--------WinHTTPMultiPaRtEXAMPLE"
    $sHeaders = "Content-Type: multipart/form-data; boundary=" & $sBoundary & @CRLF

    [/autoit][autoit][/autoit][autoit]

    $sData = @CRLF
    $sData &= "--" & $sBoundary & @CRLF
    $sData &= 'Content-Disposition: form-data; name="einFeld"' & @CRLF & @CRLF & "FeldWert" & @CRLF
    $sData &= "--" & $sBoundary & @CRLF
    $sData &= __WinHttpFileContent("", "uploadfeld", "C:\file.txt")
    $sData &= "--" & $sBoundary & "--" & @CRLF

    [/autoit][autoit][/autoit][autoit]

    _WinHttpSimpleSSLRequest($hConnect, "POST", "/form.php", Default, StringToBinary($sData,0), $sHeaders)

    [/autoit]

    Einmal editiert, zuletzt von progandy (6. Februar 2011 um 01:03)

  • Hallo,

    dank ProgAndys Hilfe kann ich nun eine Lösung zur Verfügung stellen - vielleicht braucht es ja noch mal jemand.

    Spoiler anzeigen
    [autoit]


    #include "WinHTTP.au3"

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------
    ;htaccess-Zugangsdaten
    $Username = "username"
    $Password = "password"

    [/autoit] [autoit][/autoit] [autoit]

    ;Server
    $Host = "domain.de" ;Ohne https:// etc.
    $Path = "/test.php" ;PHP-Datei welche die Datei entgegennimmt

    [/autoit] [autoit][/autoit] [autoit]

    ;Upload-File
    $Upload_field = "file_upload" ;$_FILES-Array-Feldname (PHP)
    $Upload_file = "datei.zip" ;Lokale Datei

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    $sBoundary = "--------WinHTTPMultiPaRtEXAMPLE"
    $sHeader = "Content-Type: multipart/form-data; boundary=" & $sBoundary & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    ;POST-Data
    $sData = "--" & $sBoundary & @CRLF
    $sData &= 'Content-Disposition: form-data; name="einFeld"' & @CRLF & @CRLF & "FeldWert" & @CRLF & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    ;File-Data
    $sData &= "--" & $sBoundary & @CRLF
    $sData &= __WinHttpFileContent("", $Upload_field, $Upload_file)
    $sData &= "--" & $sBoundary & "--" & @CRLF

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;=======================================================================
    ; Los geht's....
    ;=======================================================================

    [/autoit] [autoit][/autoit] [autoit]

    ;Anfrage starten
    $hOpen = _WinHttpOpen()
    $hConnect = _WinHttpConnect($hOpen, $Host)

    [/autoit] [autoit][/autoit] [autoit]

    $hRequest = _WinHttpSimpleSendSSLRequestPassword($hConnect, $Username, $Password, "POST", $Path, Default, StringToBinary($sData,0), $sHeader)

    [/autoit] [autoit][/autoit] [autoit]

    ;Antwort des Servers
    ConsoleWrite(@CRLF & $hrequest & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;=======================================================================

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _WinHttpSimpleSendSSLRequestPassword($hConnect, $sUsername, $sPassword, $sType = Default, $sPath = Default, $sReferrer = Default, $sData = Default, $sHeader = Default)
    ;Author: ProgAndy
    ;Modified: Trainer

    [/autoit] [autoit][/autoit] [autoit]

    If $sType = Default Or $sType = -1 Then $sType = "GET"
    If $sPath = Default Or $sPath = -1 Then $sPath = ""
    If $sReferrer = Default Or $sReferrer = -1 Then $sReferrer = $WINHTTP_NO_REFERER
    If $sData = Default Or $sData = -1 Then $sData = $WINHTTP_NO_REQUEST_DATA
    If $sHeader = Default Or $sHeader = -1 Then $sHeader = $WINHTTP_NO_ADDITIONAL_HEADERS

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $hRequest = _WinHttpOpenRequest($hConnect, $sType, $sPath, Default, $sReferrer, Default, BitOR($WINHTTP_FLAG_SECURE, $WINHTTP_FLAG_ESCAPE_DISABLE))
    If Not $hRequest Then Return SetError(1, @error, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ;htaccess-Authentifizierung
    _WinHttpSetCredentials($hRequest, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, $sUsername, $sPassword)

    [/autoit] [autoit][/autoit] [autoit]

    ;Anfrage starten
    If $sType = "POST" And $sHeader = $WINHTTP_NO_ADDITIONAL_HEADERS Then $sHeader = "Content-Type: application/x-www-form-urlencoded" & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    _WinHttpSendRequest($hRequest, $sHeader, $sData)
    If @error Then Return SetError(2, 0 * _WinHttpCloseHandle($hRequest), 0)

    [/autoit] [autoit][/autoit] [autoit]

    _WinHttpReceiveResponse($hRequest)
    If @error Then Return SetError(3, 0 * _WinHttpCloseHandle($hRequest), 0)

    [/autoit] [autoit][/autoit] [autoit]

    ;Server-Antwort
    If _WinHttpQueryDataAvailable($hRequest) Then
    $answer = _WinHttpReadData($hRequest)
    Else
    $answer = "Der Server lieferte keine gültige Antwort zurück!"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return $answer

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_WinHttpSimpleSendSSLRequestPassword

    [/autoit]

    Hier noch ein Beispiel für ein PHP-Skript, welches die POST-Daten / die Datei entgegen nehmen kann, also für obiges Beispiel wäre das: https://domain.de/test.php. Das Skript läge hier im htaccess-geschützten Wurzelverzeichnis. Dort landet dann im Erfolgsfall auch die Datei (Verzeichnisrechte nicht vergessen zu setzten, damit die Datei auch geschrieben werden kann).

    Spoiler anzeigen

    Viel Spass damit - und noch mal Danke an alle 8o ...
    Trainer