[Bug erledigt] Bei "Hyperlink einfügen" mißversteht TheBat! die Parameter für HTTP-Requests als benannte HTML-Zeichen und verfälscht den Link

  • Parameter für ein CGI oder so werden durch ein Fragezeichen "?" von der URL abgegrenzt, und dann untereinander durch das Ampersand-Zeichen "&".

    Kommt danach etwas, was wie ein benanntes HTML-Zeichen aussieht, dann ersetzt TheBat! diesen Teil des Parameters durch das entsprechende Zeichen, obwohl das nicht mit einem Semikolon ";" terminiert wird.

    So wurde bei mir der Parameter "timesel=", der die Zeit in einer Fahrplanabfrage als Abfahrt- bzw. als Ankunftszeit benennt, zu " ×el=", mit dem Multiplikationszeichen, das man in einem HTML-Dokument als × schreiben kann, und einem zusätzlichen Leerzeichen davor. Die Fahrplanabfrage nimmt die Zeit dann gemäß dem Default als Startzeit, obwohl es sich tatsächlich um die Ankunftszeit handelt (zum Beginn eines bestimmten Ereignisses, zu dem die Leute einen Fahrplan erfragen können sollen, ohne außer ihrem Startort keine Angaben machen zu müssen).

    Siehe #1309 im Mantis-Bugtracker von Ritlabs.

  • Der Bug ist vermutlich sehr alt.

    Er ist mir nur gerade jetzt aufgefallen, als ich nach dem Versand der Rundsendung mit diesem Fahrplan-Link den selbst mal ausprobiert habe, und erst dachte, daß ich selber bei der Erstellung einen Fehler gemacht hatte oder daß dieser Homepage-Service grundsätzlich nur Start-Zeit bereitstellen kann.

    Dann machte ich ein ausführlicheres Guck, und fand das Problem.

  • Ich habe sowas auch noch nicht gehabt, da ich sehr oft nur Text-Format bei Mails benutze.


    The Bat! Pro 11.x BETA (32bit) | Win 11 Pro x64 | GnuPG 2.4.x | XMP + Regula

    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

  • Zitat


    Der Bug ist vermutlich sehr alt.


    Ich habs mir einer 5.3.8 getestet (still ruht der See auf einem anderen Rechner), und da zeigt sich das Phänomen nicht. Die Version konnte aber auch den Link nicht automatisch aus der Zwischenablage übernehmen.

    Die Ritlaborateure haben vermutlich bei der Einführung dieser Übernahme den Fehler durch eine Hyperkorrektur überkompensiert.

  • Ich hab mir den alten Thread und den Mantis-Eintrag #909 nicht komplett durchgelesen.

    Der Fehler in der jetztigen Software ist, eine URL als HTML zu behandeln, was es nicht ist. Es ist HTTP, und das ist was andres. Und ein URL muß den Bedingungen genügen.

    Da gibt es mehrere Websites, die einem URLs kodieren und dekodieren -- escapen und de-escapen. Google nach url-encoder

    http://www.motobit.com/util/url-encoder.asp • das produziert aber auch Überkompensation... selbst die normalen Schrägstriche werden prozentisiert
    http://www.motobit.com/util/url-decoder.asp

    Aber die URL, die von den Webservice des RMV erstellt wird, ist schon so OK, da braucht man nichts dran zu ändern.

    In den Beispiel Darmstadt Kopernikusplatz gibt es ja keine Probleme - außer vielleicht die Blanks (Leerzeichen), aber nach Königstein, Haintürchenstraße 4a dürfte es schon interessanter werden:

    "http://www.rmv.de/auskunft/bin/jp/query.exe/dn?SID=&ZID=A=2@O=Königstein im Taunus, Haintürchenstraße 4A@X=8463659@Y=50184088@U=103@L=990106813@B=1@V=6.9,@p=1495608155@&date=09.10.17&time=10:00&timesel=depart&externalCall=yes&start=yes"

    aber auch das kann ich einfach in das Adreßfeld vom Browser eingeben, und hopp.

    Wenn man kodiert, dann richtig. TheBat macht im derzeitigen Zustand aus einem Ampersand "&" ein "&" richtig wäre ein %26, oder es sein lassen.

  • Ja, stimmt, hat wohl eher nichts damit zu tun.

    Es ist mir auch unerklärlich, warum in dem URL-Popup HTML-Entitäten (&xxxxxx;) benutzt werden, die haben in einer URL nichts zu suchen. Zeichen in URLs, die kollidieren, werden nach allgemein gültigem Web-Standard immer als %xx (URL encoded) ungesetzt.


    The Bat! Pro 11.x BETA (32bit) | Win 11 Pro x64 | GnuPG 2.4.x | XMP + Regula

    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

  • In der Alpha 60 ist das Problem wohl beseitigt. Ich hab's zumindest anhand meines Beispiels mit der Fahrplanabfrage, wo der Parameter "&timesel=" zu " ×el=" wurde.

    Sollte ich nochmal so eine Rundmail mit einer vorformulierten Fahrplanabfrage für die Fahrt von einem beliebigen Ort zu einem Ereignis verschicken, können dann die Empfänger das Formular benutzen, ohne die Zeitangabe von "Abfahrt" auf "Ankunft" zu ändern. Ich werde allerdings darauf aufmerksam machen müssen, daß der Fehler vom vorgen Mal von der Mail-Software verursacht wurde und daß der jetzt behoben ist.

    Bin zufrieden.