dll im Browser

Von: , Frage gestellt am Do, 9. Nov 2000

Hi Leuts,

ich hab jetzt 'ne tolle dll, die auch schon interpretierbaren HtmlCode Rausschmeißt:
Wenn ich die dll im Browser aufrufe
(http://localhost/cgi-bin/test.dll) bekomme ich eine ganz normale WebSeite. Soweitsogut.
Die Probleme liegen jetzt bei der Parameterübergabe.
Ich hab gesehen, wie eine dll mit
.../test.dll?variable1=duda?variable2=jadu aufgerufen wurde.
wenn ich das zum testen nurmal so mache bringt mir der jeweilige wwwServer eine FM (nicht404) und interpretiert mir die Seite, die sonst funktionierte nichtmal.

Wo in dieser diesser dll muß ich was hinschreiben, damit ich die Parameter in der dll in eine Variable schmeißen kann?

Hab Visual C++ zum Programeiren.

cu desian

11 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde hilfreich
    Re: dll im Browser

    .../test.dll?variable1=duda?variable2=jadu aufgerufen wurde.
    .../test.dll?variable1=duda&variable2=jadu aufgerufen wurde.
    vermutlich liegt es daran, der Query-String wird durch ein Fragezeichen von der URL getrennt, die Parameter untereinander durch ein &.
    Die Übergabeparameter findest Du dann in der Environment Variable QUERY_STRING.

    Klaus

    • Antwort von nach 2 Stunden hilfreich
      Re^2: dll im Browser

      vermutlich liegt es daran, der Query-String wird durch ein
      Fragezeichen von der URL getrennt, die Parameter untereinander
      durch ein &.
      Die Übergabeparameter findest Du dann in der Environment
      Variable QUERY_STRING.

      Klaus
      Das war zwar ein Fehler aber daran lag es nicht.
      Ich habs jetzt nochmal mit einem 'form action..' probeiert.
      Wenn ich da InputFelder fülle und auf meinen submit button drücke, dann ruft der die dll auf als gäbe es garkeine Parameter.

      cu Desian

      • Antwort von nach 5 Stunden hilfreich
        Re^3: dll im Browser

        Ich habs jetzt nochmal mit einem 'form action..' probeiert.
        Wenn ich da InputFelder fülle und auf meinen submit button
        drücke, dann ruft der die dll auf als gäbe es garkeine
        Parameter.
        yep, denn das sind zwei verschiedene Dinge.
        Die in der URL kodierten Parameter sind eine GET Operation, während Dein Form eine POST Operation ist.
        GET wird i.d.R. benutzt um Informationen vom Server anzufordern, während POST Operationen typischer Weise Daten auf dem Server verändern (sollen).

        Klaus

        • Antwort von nach 21 Stunden hilfreich
          Re^4: dll im Browser

          yep, denn das sind zwei verschiedene Dinge.
          Die in der URL kodierten Parameter sind eine GET Operation,
          während Dein Form eine POST Operation ist.
          GET wird i.d.R. benutzt um Informationen vom Server
          anzufordern, während POST Operationen typischer Weise Daten
          auf dem Server verändern (sollen).

          Klaus
          OK. Dann wende ich mthod=get an. Wie bekomm ich die Variablen aber nun in meine dll zum verwerten?

          cu Desian

          • Antwort von nach 23 Stunden hilfreich
            Re^5: dll im Browser

            OK. Dann wende ich mthod=get an. Wie bekomm ich die Variablen
            aber nun in meine dll zum verwerten?
            Die Parameter stehen im Environment.
            Mit der C Funktion getenv kommst Du an sie heran.
            z.b.
            char* querystring = get_env("QUERY_STRING");

            Aber eigentlich möchtest Du Dich zunächst ein wenig mit CGI (Common Gateway Interface) vertraut machen, ansonsten stolperst Du nur von Problem zu Problem und am Ende hast Du alle Fettnäpfchen getroffen. ;-)

            Klaus

            • Antwort von nach einem Tag hilfreich
              Re^6: dll im Browser

              Die Parameter stehen im Environment.
              Mit der C Funktion getenv kommst Du an sie heran.
              z.b.
              char* querystring = get_env("QUERY_STRING");

              Aber eigentlich möchtest Du Dich zunächst ein wenig mit CGI
              (Common Gateway Interface) vertraut machen, ansonsten
              stolperst Du nur von Problem zu Problem und am Ende hast Du
              alle Fettnäpfchen getroffen. ;-)

              Klaus
              cgi ist kein Problem. Da funktioniert es einwandfrei. Das hab ich voher darin fertig gemacht. Die Routinen kenn ich dann, wenn das Funktioniert hab ich die BrowserProbleme hinter mir. *hoff*
              Da waren wirklcih genug Fettnäpfchen, das ich von einem ins andere springen konnte :/
              Ich hab von meinem Arbeitgeber nur so ne Blackbox in Form von 'n paar funktionen aus 'n paar anderen dlls bekommen, die ich nur über meine selbstprogramierte dll ansteuern soll.
              Deshalb mach ich mir den Streß mit der dll. Freiwillig nicht.
              Habs probiert und in die void CAtestExtension::Default(CHttpServerContext* pCtxt) geschrieben.
              Funktioniert leider nicht. Welchen include brauche ich dafür?
              bei get_env bekomme ich die FM 'nicht deklarierter Berzeichner' und in der Hilfe zu Visual C++ steht die Funktionnicht.

              cu Desian

            • Antwort von nach einem Tag hilfreich
              Re^7: dll im Browser

              cgi ist kein Problem. Da funktioniert es einwandfrei. Das hab
              ich voher darin fertig gemacht.
              Was hast du in CGI fertiggemacht? CGI ist keine Programmiersprache. Funktioniert leider nicht. Welchen include brauche ich dafür?
              bei get_env bekomme ich die FM 'nicht deklarierter
              Berzeichner' und in der Hilfe zu Visual C++ steht die
              Funktionnicht.
              Es heisst getenv() nicht get_env(), aus stdlib.h

              MfG Bruno

            • Antwort von nach 4 Tagen hilfreich
              Re^8: dll im Browser

              Was hast du in CGI fertiggemacht? CGI ist keine
              Programmiersprache.
              Ich meinte Perl. Bin wohl über das umgangssprachliche Wort CGI-Skript auf 'in CGI prograieren' gekommen. Es heisst getenv() nicht get_env(), aus stdlib.h

              MfG Bruno
              Danke, das hat mir schon ein wenig weitergeholfen.

              cu Desian

            • Antwort von nach einem Tag hilfreich
              Re^7: dll im Browser

              cgi ist kein Problem. Da funktioniert es einwandfrei. Das hab
              ich voher darin fertig gemacht. Die Routinen kenn ich dann,
              wenn das Funktioniert hab ich die BrowserProbleme hinter mir.
              CGI ist eine Spezifikation, wie der Web-Server mit Applikationen kommuniziert. Also u.a. wie Parameterübergaben stattfinden, wie sie kodiert werden und was sie bedeuten etc. Ohne diese Kenntnisse wirst Du noch eine Menge "Fettnäpfchen" treffen.

              Desweiteren stellen Bibliotheken in Visual C++ eine Reihe von Funktionen zur Verfügung, die Dir diverse Arbeiten abnehmen, zum Beispiel das Parsen und korrekte Dekodieren der Parameter.
              Du solltest diese Unterstützung nicht leichtfertig über Bord werfen, auch wenn's im ersten Anlauf nicht gleich funktioniert hat. Sie helfen Dir auch gewisse Sicherheitsrisiken zu mindern, die unerfahrene CGI Entwickler häufig einbauen. Funktioniert leider nicht. Welchen include brauche ich dafür?
              bei get_env bekomme ich die FM 'nicht deklarierter
              Berzeichner' und in der Hilfe zu Visual C++ steht die
              Funktionnicht.
              Sorry, mein Fehler. Es sollte getenv heissen, wie Bruno Dir schon mitgeteilt hat. (Danke an Bruno an dieser Stelle)



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!