Senden von Formulardaten: Erfolg überprüfen

  • Hallo Community

    ich habe mal eine kleine frage. ich habe mir ein script geschrieben das automatisch ein formular mit meinen daten ausf¨üüllt und nacher auf den submit button klickt. nun ist das problem das dieser button nicht immer vorhanden ist. genauer gesagt ist das formular immer verfügbar, aber erst um mitternacht kommt der submit button hinzu. um möglichst schnell meine daten eintragen zu können habe ich das script so geschrieben dass er enfach immer wieder die formulardaten ins formular schreibt und dann auf submit klickt und dann wieder die aktion wiederholt. das funktioniert zwar einigermassen gut, nur gibt es dabei einige probleme.

    1) diese mehtode verursacht ziemlich viel unnötige anfragen an den server. gibts da keine bessere methode für? könnte man z.b. irgendwie die serverzeit mit einem script auslesen und dann erst posten wenn das formular abgeschickt werden kann?

    2) wenn dies nicht möglich ist... gibts auch methoden um zu überprüfen ob das absenden der formulardaten oder wenigstens der klick auf den submit button erfolgreich war? damit ich das script danach abbrechen kann? in der jetzige form läuft es ja immer weiter und ich sende die daten mehrmals an den server bis ich von hand abbreche. ist ja auch nicht sinn der sache

    3) gibt es noch eine ganz andere möglichkeit formular daten an den server zu schicken? also ohne das formular aktiv im brwoser auszufüööen? so direkt per POST aus dem programm an den server zu schicken?

    vielen dank
    sebastian23

  • Das sollte dir weiterhelfen.

    [autoit]

    MsgBox(64, 'Zeit:', @HOUR & ':' & @MIN & ':' & @SEC)

    [/autoit]
    • und inwifern jetzt? sry aber verstehe das jetzt gar nicht :D kannst du das pls näher erklären? ist das die serverzeit?? aber woher soll die denn kommen?
  • ne die locale Zeit auf deinem Rechner, wenn die nicht identisch mit der Serverzeit ist musst halt schauen was da für ne differenz vorliegt und dementsprechent dein Script anpassen.
    Also wenn der Server ne Stunde weiter ist als dein Rechner dann startest mit dem ausfüllen des Formulars halt erst um 01:00 auf deinem Rechner !

  • naja die lokale zeit kann ich schon auslesen. das problem ist dass ich wirklich die auf die mind. sekunde genaue serverzeit brauche, da das wirklich zeit kritisch ist. und die zeitzone haben wir schon dieselbe

  • ja das wäre natürlich auch eine möglichkeit. aber dazu muss ich ja auch erst mal die serverzeit auslesen können. daran scheitere ich ja. weil manuell machen will ich das nicht, dann wäre der sinn von autoit ja bisschen verloren :D

  • um POST-Daten mitzugeben in der IE.au3

    [autoit]

    $sFormAction = "http://achwasweisich.de/index.php"
    $sHeader = "Content-Type: application/x-www-form-urlencoded"
    $sDataToPost = "bla"
    $oDataToPostBstr = __IEStringToBstr($sDataToPost) ; convert string to BSTR
    $oIE.Navigate( $sFormAction, Default, 1, $oDataToPostBstr, $sHeader)

    [/autoit]

    und btw warum überprüfst du nicht davor, ob der Submitbutton da ist mit InetGetSource oder etc

  • danke das sieht schon mal gut aus. aber da wird auch der iexplorer geöffnet oder? und wie löse ich das wenns mehrere formulare oder mehrere felder im formular gibt?

    ja das wäre auch eine möglichkteit mit dem vorher überprüfen. aber dann vergeht fast mehr zeit. weill dann wenns um 0.00 los geht muss ich erst prüfen und dann die daten schicken. das geht doch fast länger als die daten einfach laufend zu schicken? und ich muss die seite ja trotzdem im sekunden takt neu laden um zu überprüfen ob der button da ist oder?

  • schneid einmal den http header mit und analysiere diesen dann, ist ja egal wie viele felder du da hast, wird ja trotzdem alles geschickt

    vllt ist ja das für dich interessant:
    InetGetSource mit POST