Hier habe ich drei Fragen?
Die MsgBox gibt mir den Header meines Formulares aus. Also besteht die Verbindung. Aber die Website, also das Formular selbst wird nicht angezeigt/gestartet/geöffnet. Was fehlt noch?
Ist, wäre die Übergabe der Daten in der GET Form hier überhaupt so richtig? Bei php ist es mit ja anders.
Das Verzeichnis ist natürlich geschützt. Wie übermittle ich mit dem sLink Benutzer und Passwort?
Hallo!
Sieht nach VBScript aus. Leider keine Ahnung wie das damit geht.
Alternative:
Verwende das Kommandozeilentool curl , welches du dann dynamisch aufrufst.
siehe https://curl.haxx.se/
alternativ bietet C# (bzw. C#-Scripting) hier mehr Möglichkeiten.
Siehe HttpWebRequest (.NET)
danke für Deine Antwort. Ja, ist VBScript, und das geht auch damit. Muss das nur noch finden oder halt wieder solange rumprobieren. Es gibt im web ja eine Menge solcher Snippets. Leider hat noch keines gepasst. Deswegen hab ich hier mal nachgefragt.
WScript.Echo oHTTP.responseText
WScript.Echo oHTTP.responseBody
[/code]
Die Schreibweise mit sUser und sPass ist dabei korrekt und bringt auch Zugang zu meinem geschützten Formular.
Der Schlüsselbefehl lautet m.E. dabei WScript.Echo oHTTP.responseBody
Dieser müsste dann die Website anzeigen.
…responseText bringt mir dabei den gesamten Quellcode meiner Website. Wird angezeigt in einem Fenster der combit Oberfläche.
Interessant dabei ist, dass auch (nach einer etwas längeren Rechnerlaufzeit) …responseBody ein solches Fenster bringt. Jedoch nicht mehr mit dem Quelltext meiner Seite (oder vielleicht doch), sondern mit kompletten chinesischen Schriftzeichen.
Meine Vermutung ist nun, dass die combit eigene VBScript Implementierung hier etwas nicht zulässt. Lässt mich sozusagen nicht raus aus der Oberfläche. Ansonsten müsste das funktionieren.
Jetzt stell ich die Frage, was noch fehlt bzw. was noch notiert werden muss, dass ich da raus komme. WScript.Quit z.B. hilft nicht.
Dim sVorname, sName, sID
sID = oRecord.GetContentsByName("DsID")
sVorname = oRecord.GetContentsByName("Firstname")
sName = oRecord.GetContentsByName("Name")
Dim sUrl
sUrl = "http://www.meineURL.de/formular.php?ID=sID '// GET ist hier möglich
Dim objIE
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate sUrl
Do While objIE.Busy
WScript.Sleep 100
Loop
objIE.Document.getElementsByName("vorname").Item(0).Value = sVorname
objIE.Document.getElementsByName("name").Item(0).Value = sName
WScript.Quit
Dabei wird mein php Formular aufgerufen und die Daten direkt in die Formularfelder eingetragen. Ein Abfangen der Variablen per POST oder GET ist dabei nicht notwendig, und auch nicht möglich. Evtl. Steuervariablen können bei der Url aber als GET (wir vor) mitgegeben werden.
Eine Begrenzung an Zeichen wie bei GET habe ich nicht festgestellt.
Es wird hier der IE aufgerufen. Bei mir läuft Chrome. Diesen Aufruf habe ich noch nicht „geschafft“. Ebenso kann ich User und Pass noch nicht übergeben. Da ich die bei mir aber nur am Anfang eintragen muss, hält sich der Aufwand in Grenzen.
Ansonsten funktioniert das Ding einwandfrei.
Gerne nehme ich aber noch Anregungen entgegen, wenn jemanden dazu noch etwas einfällt.
zum grundsätzlichen Verständnis: du möchtest, dass 1) dein URL String, basierend auf Infos aus der DB, zusammengebaut wird und 2) bei der dann aufgerufenen Seite Informationen in bestehende Felder der Website eingetragen werden, richtig?
Zu 1) Wenn ich dich richtig verstehe, wird deine GET Anfrage zu lang. Hier wäre mE rauszufinden, wo die Limitation liegt. Ich habe ein VBScript geschrieben, das eine URL zusammensetzt, diese dann als GET an die Google Distance Matrix API sendet und die daraus resultierende XML bzw. json File runterlädt. Bei einer Adresse für den Ausgangspunkt und max. 99 Destinations pro Anfrage wird die URL entsprechend lang aber nicht abgeschnitten. Eine kurze Suche bei Stackoverflow hat ergeben, dass die maximale Länge, je nach Browser und Serverkonfiguration zwischen 2 und 8 KB sein kann. (web services - Maximum length of HTTP GET request - Stack Overflow)
Zu 2) Da du ja auch für anderweitige Anregungen offen scheinst: Ich habe User Angaben im Browser über C# und das Selenium Framework umgesetzt. Ist jetzt nicht die stabilste Umsetzung, aber funktioniert.