HTML-Seite, Parameter annehmen, DOS-Routine starten, Ergebnis als HTML zurück

  • Guten Tag allerseits,
    ich suche eine Lösung für folgendes Problem:


    User ruft URL auf mit bis zu 5 Parametern,
    Parameter werden genommen und damit ein DOS-Job auf einer W2K-Maschine gestartet (dauert ca. 30 Sekunden),
    heraus kommt wieder eine HTML-Seite,
    diese soll dem aufrufenden User angezeigt werden.


    Hat bitte jemand eine Idee, wie man das am besten macht ?


    Anmerkung: ich spreche gut HTML und DOS, habe aber von PHP und Scripts kaum Ahnung, bitte daher diesbezüglich um Nachsicht :-))

  • Hi Teddie


    da hast du ja einiges vor :D so ganz einfach wird das nicht.


    Erstmal prinzipiell: läuft das auf einem Server, oder ist das einfach nur eine statische HTML Seite? Erstere Variante wäre geschickter, zumindest wegen der Parameter Übergabe. Ansonsten wirst du mit Javascript arbeiten müssen.


    Das Dos Programm aufrufen sollte klappen, allerdings läuft das über ActiveX und ist damit nur dem IE bestimmt. Zusätzlich sind die User-Sicherheitseinstellung dabei noch zu beachten.


    Die Weiterleitung danach ist dagegen dein kleinstes Problem ;)


    Also wie gesagt: wird schon etwas komplizierter. Ich kann dir deshalb auch nicht wirklich jetzt mit Code-Beispielen dienen. Zumindest hab ich sowas ähnliches schonmal gemacht und könnt dir dann bei Detailfragen evt. ein paar Tips geben.


    Gruß The-spY

    I am the lizard king - I can do anything!

  • Hi The-spY,
    danke für die schnelle Antwort.
    Prinzipiell könnte das auch auf einem Server laufen mit PHP, CGI oder ähnlich, dann müsste ich mir noch einen Betreiber suchen, der mir das auch erlaubt.
    Im Lösungsansatz bin ich aber voll offen.
    Geld darf es etwas, aber nicht viel kosten, weil das ein Non-Profit Produkt u. a. auch für I-Mode und evtl. auch WAP werden soll.
    Unter diesem Aspekt verbietet sich Java eigentlich, weil die heutigen I-Mode-Handys kein Java können.
    Scheinbar hat sowas noch keiner gemacht, in den einschlägigen PHP-Töpfen hbe ich nix gefunden, was dem nahe kommt.
    Vielleicht gehts ja trotzdem irgendwie.

  • Zitat

    Original geschrieben von Teddie_Neubert
    Prinzipiell könnte das auch auf einem Server laufen mit PHP, CGI oder ähnlich, dann müsste ich mir noch einen Betreiber suchen, der mir das auch erlaubt.

    Wie gesagt ist das prinzipiell nicht nötig, würde aber den Umgang mit der Parameterübergabe vereinfachen.

    Gehen tut fast alles ;)


    Ich muss aber gestehen, ich hab es gestern wohl falsch verstanden bzgl der Geschichte mit dem Aufruf des Dos-Programms. Ich dachte nämlich zuerst, dass das Programm lokal beim Besucher auf der Windows Maschine laufen soll. Deswegen die Erwähnung von ActiveX. Ich glaube du meinst aber, dass es auf dem Server laufen soll. Dazu brauchst du auf jeden Fall dann einen Server, und natürlich auch einen mit Windows als Betriebssystem. Das bedeutet aber für dich auch, dass du ein wahrscheinlich relativ teures Webhosting Angebot nehmen musst. Andererseits wird dadurch das Ausführen des Dos Programms einfacher, weil das dann der Server macht.


    An deiner Stelle würd ich jetzt erstmal nach einem Hoster schauen, bei dem das ganze deinen finanziellen Rahmen nicht sprengt. Vielleicht hast du auch Glück und findest einen Free-Hoster, der eigene Skripte zulässt und auf Windows läuft, aber das bezweifle ich stark. Dann würd ich mir die entsprechende Serversoftware lokal installieren und das Ding erstmal lokal entwicklen. Ob dann unter PHP oder Perl ist dann eigentlich geschmackssache. Ich persönlich würd Perl bevorzugen, ganz einfach weil ich da mehr Erfahrung habe.


    cia The-spY

    I am the lizard king - I can do anything!

  • Hi The-spY,
    Ja, Du hast natürlich recht, ich habe verbummelt zu sagen, dass die DOSe auf dem Server laufen soll.
    Es muss auch nicht wirklich DOSe sein, habe das eingentlich nur geschrieben, weil ich zu blöde für was anderes bin und sich die Methoden der Konvertierung ab und zu mal ändern, das wäre dann auch für mich leicht und fix zu erledigen.


    Ich erkläre jetzt mal, worum es überhaupt geht:


    Es gibt im Internet eine mit Parametern ansprechbare Webseite, diese selbst wird anhand der übergebenen Parameter dynamisch erzeugt und jeder kann sie auch im normalen Web aufrufen. Sie enthält u. a. auch eine Tabelle nach HTML-Standard, nur diese ist wichtig.
    Nun der Haken: Die Seite insgesamt ist mit GIFs und A HREFs so zugemüllt, dass sie so in Praxi zwar schön anzuschauen, aber auf mobilen Internet-Handys wenig hilfreich ist.


    Heute schon lese ich diese Webseite - via Win32-DOSe - schon zu festen Zeiten ein, wandle das ganze um (sprich: schmeisse überflüssiges weg), filtere das ganze noch nach bestimmten Inhalten der Tabelle und lasse mir das Ergebnis per Mail aufs Handy schicken.
    Wenn ich das aber mal ausserhalb der festen Zeiten brauche, dann kann ich die Info nicht abrufen und genau das ist der Sinn meiner Anfrage.
    Die Methoden funktioneren alle gut, ich brauche eigentlich nur "das vorne", sprich Entgegennahme und Starten des Jobs und "das hinten", sprich zeige dem User die "neue" Webseite.
    Zwischenzeitlich habe ich was gefunden, was so ähnlich geht - leider in meinem Fall -, aber nicht gut funktioniert.
    Falls Du mal schauen möchtest:
    http://www.sjk.co.jp/e/index_w_j.html

  • Hi Teddie,


    das klingt nicht schlecht. Das was du haben willst ist eigentlich eine typische Web Programmierung. Eine Seite Aufrufen -> Parameter per Formular eingeben -> neue Seite aufrufen -> die holt irgendwelche Daten von einer anderen Seite -> du machst mit den Daten irgendwas -> und am Schluß noch eine Mail verschicken.


    Also in meinen Augen brauchst du diese Dos-Geschichte nicht, auch wenn es für dich im ersten Moment einfacher dadurch erscheint. Du musst zwar dadurch vielleicht etwas mehr lernen hast dafür aber viel mehr Freiraum, was bspw. den Webserver angeht. Du könntest jetzt nämlich komplett auf Windows verzichten.


    Ich würde dir vorschlagen: schnapp dir erstmal Selfhtml (http://www.teamone.de/selfhtml/) und schau dir das Kapitel über Webserver an, und installier dir lokal einen. (Wenn du schon einen Hoster und Flaterate hast, kannst du aber auch direkt deinen richtigen Webserver nehmen zum entwickeln)


    Dann würde ich wie gesagt das ganze in Perl angehen. Dazu ist erstmal ein Grundverständniss nötig, dass dir aber von Selfhtml vermittelt wird. Dabei lernst du auch gleich, wie man Formulare mit Perl auswertet.


    Als nächstes musst du dich kurz mit Modulen befassen. Das sind quasi Erweiterungen von Perl. Es gibt da eins, mit dem kann dein Skript fremde Seiten abrufen (LWP). Das ist aber auch einfach.


    Dann hast du die Seite und kannst mit deinem Skript die Tabelle extrahieren. Das funktioniert am besten mit regulären Ausdrücken. Die könnten etwas kompliziert am Anfang sein, falls man diesen Mechanismus noch nicht kennt.


    Und zum Schluss, die Tabelle per Mail verschicken, ist wieder eine Kleinigkeit.


    Wenn du sagst, du kannst HTML und Dos, dann denke ich wirst du als absoluter Neuling in Perl (PHP geht aber prinz. genau so) so ca. 1 Woche brauchen, bis du was brauchbares hast.


    Falls du noch fragen hast, nur zu :)


    Gruß The-spY

    I am the lizard king - I can do anything!

  • Also ich glaube, daß die Geschichte mit der .exe-Datei auf einem Webserver ein sehr teurer Spaß werden wird, denn die "normalen" Hoster erlauben sowas i.d.R. nicht.


    Ich würde mir auch einen Hoster mit ASP oder PHP-Unterstützung suchen und die Seite, die geladen werden soll, zeilenweise einlesen um sie danach umzuschreiben für i-mode.


    Wenn Du schon ein bißchen VB kannst, würde ich ASP bevorzugen, da es auf VB Script basiert.


    Rieu

    blöder Name, geile Preise... pallypse.de

  • so gehts


    als Einfachst-Lösung - hilf Dir selbst, dann hilft Dir ....


    <?php
    echo "<html><body><font face=arial size=2>\n";
    if (!$_GET) { echo ("keine Parameter<p>\n"); }
    else {
    if ($_GET['bhf']) {
    $dat = date ("mdHi");
    $bhf = $_GET['bhf'];
    $AnAb = $_GET['AnAb'];
    $sel = $_GET['sel'];


    $filename = "http://...........tafel.html?bhf=$bhf";


    $fd = fopen( $filename, "r" );
    $contents = fread( $fd, 80000 );
    fclose( $fd );


    $cartFile = fopen("temp.htm","w");
    fwrite($cartFile,$contents);
    fclose($cartFile);


    exec ("#FILTER.BAT . temp $sel");


    include "tempHtml0.ini";


    eregi("<TITLE>(.*)</TITLE>", $contents, $tit);
    echo date ("d.m.Y ");
    echo (eregi_replace( "Haltestelleninformationen - Abfahrtsplan", "", $tit[1] ));
    echo " ", $bhf;
    }
    else { echo ("kein Bahnhof\n"); }
    }
    echo "</body></html>";


    ?>

  • ... hat ja genau die Woche gedauert, die ich voraus gesagt habe ;) Auch wenns jetzt PHP statt Perl ist, ist ja egal.


    Viel Spass damit, ich glaub ich hab sogar verstanden, welche Infos du dir da abgreifst :D


    cia The-spY

    I am the lizard king - I can do anything!

  • Ich versteh' nur Bahnhof! :D

    mutt : "All mail clients suck. This one just sucks less."
    Es gibt Threads die braucht man nichtmal lesen um zu wissen was ab geht - /me 2004-01-05 20:54


    Registriert seit: 05/2002 => 10 Jahre TT :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!