Externes Formular automatisch absenden

dennis-sauer

Erfahrenes Mitglied
#1
Hallo zusammen,

ich bin hoffentlich im richtigen Forum. Ich habe eine Verlinkung auf die Fahrplanauskunft des Verkehrsverbundes Rhein Ruhr.

http://efa.vrr.de/standard/XSLT_TRI...edMeans=1&excludedMeans=0&lineRestriction=403

Das bietet der VRR offen an, ich hab noch ein paar Änderungen vorgenommen. Um nun eine Verbindung zu bekommen, muss man nun auf "Fahrplan anfordern" klicken. Kann ich das auch umgehen? Sodass direkt die Verbindungen angezeigt werden, mittels der Adresse gebe ich ja alles vor, was genügt.

Die Ergebnisseite lautet genau wie die Eingabeseite http://efa.vrr.de/standard/XSLT_TRIP_REQUEST2

Ich bin übrigens hier her gekommen, weil ich davon aus gehe es ist XML und da hab ich mich noch gar nicht reingelesen!

Danke für eure Hilfe

Dennis
 

ComFreek

Mod | @comfreek
Moderator
#2
Hallo Dennis,

du kannst theoretisch jedes Formular (der <form>-Code) auf deine Seite kopieren und als action-Attribut ein externes Skript angeben.
Die meisten Seiten bauen jedoch ein CSRF-Token ein, um sich genau gegen solche Attacken zu wehren. Das Formular der Fahrplanauskunft hat ein verstecktes Inputfeld namens "sessionId". Wenn man den Standardwert dieses Feldes ändert, bekommt man nach Abschicken des Formulas Folgendes:
Internal Error
Your session has expired.
Was möchtest du denn eigentlich machen? Willst du selber eine bequeme Möglichkeit haben, den Fahrplan sofort abrufen zu können? Willst du von deiner eigenen Seite aus zu den Suchergebnissen weiterleiten? Letzteres ist nicht möglich, ohne die Seite zu kopieren (im Sinne eines Proxys selbst eine Anfrage senden).

Übrigens hat das nichts mit XML zu tun, somit verschiebe ich das Thema. Der Server mag XLST nutzen (siehe deine 2. URI), das kann dir aber egal sein. Der Server könnte genauso gut JSP-Pages nutzen. Das würde nichts an der Vorgehensweise ändern.
 

dennis-sauer

Erfahrenes Mitglied
#3
Hallo,

danke für deine kurzfristige Info. Ja ich will es möglichst bequem haben... Einen einfachen Button wollte ich "Verbindung" mit Klick auf diesen werden die Verbindungen angezeigt, ohne das ich noch weitere Button anklicken muss. Hab mittels den Chrome Developer Tools mal reingeschaut und hab auch das von dir beschriebene hidden Field mit der session_id gefunden. Macht Sinn! Schade eigentlich die Möglichkeit nur zu Anforderungsseite besteht.
 
#5
Hmm, ich weiß ja nicht ob sich das irgendwann ändert, aber aktuell ist die sessionID durchgehend value="0".
Benutz das selbst um vor Feierabend schnell zu gucken ob alles wie geplant fährt.
Mann muss nur sehr genau bei der Ortsbestimmung sein wenn man direkt das Ergebnis möchte.^^
(Am besten einmal über das normale Formular eingeben und dann den Text aus der Anzeige verwenden)

Code:
<form action="http://efa.vrr.de/vrrstd/XSLT_TRIP_REQUEST2" method="get" class="clearfix" enctype="multipart/form-data" id="mdv_quickinputForm">
    <input type="hidden" name="language" value="de"/>
    <input type="hidden" name="sessionID" value="0"/>
    <input type="hidden" name="odvMacro" value="true"/>
    <input type="hidden" name="commonMacro" value="true"/>
    <input type="hidden" value="403" name="lineRestriction"/>
    <input type="hidden" value="0" name="SpEncId"/>
    <input type="hidden" value="any" name="type_origin"/>
    <input type="hidden" value="any" name="type_destination"/>
    <input type="hidden" value="vrr" name="itdLPxx_transpCompany"/>
    <input type="hidden" name="nameInfo_origin" id="mdv_qInfoOrigin" value="invalid"/>
    <input type="hidden" name="nameInfo_destination" id="mdv_qInfoDestination" value="invalid"/>
    <input type="hidden" name="name_origin" value="[Startpunkt hier rein]" id="name_origin" />
    <input type="hidden" name="name_destination" value="[endpunkt hier rein]" id="name_destination" "/>
    <div class="submit-button">
        <input class="submit" type="submit" value="Verbindung suchen"/>
    </div>
</form>