Wassertank2001: Download statt ausführen

Hallo Leute,

"Der Martin" hat mich darauf hingewiesen das Opera die Datei Cars.exe runterladen will anstatt mit Parameter zu starten.

Dem wollte ich auf den Grund gehen, besonders da auf einem meiner Rechner FF, IE und Chrom kein Problem damit haben.

Seit kurzem aber auf einer anderen Kiste FF auch die Datei runterladen will.

Struktur:

Index.html mit Post=login.exe

login verändert die get parameter in pause.html für die nächste exe.

pause.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
<title>swissBase.ch</title>
<meta http-equiv="refresh" content="1; url=Cars.exe?{USERNAME}">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

</head>

<body>
<font face="Verdana" size="5">Database Connecting</font>
</html>

Was mache ich falsch, stehe auf dem Schlauch.

Gruss Horst

  1. Hi,

    "Der Martin" hat mich darauf hingewiesen das Opera die Datei Cars.exe runterladen will anstatt mit Parameter zu starten.

    und warum machst du dafür schon wieder einen neuen Thread auf, obwohl der alte, in dem alle bisherigen Informationen stecken, noch unmittelbar erreichbar ist?

    Dem wollte ich auf den Grund gehen, besonders da auf einem meiner Rechner FF, IE und Chrom kein Problem damit haben.
    Seit kurzem aber auf einer anderen Kiste FF auch die Datei runterladen will.

    Ich hatte in meinem Beitrag von letzter Woche schon angedeutet (zugegeben, wirklich nur angedeutet), woran das liegt: Diese Ressource wird ohne Content-Type-Header ausgeliefert. Die Browser haben also keinen Anhaltspunkt, woran sie erkennen könnten, *was* da auf sie zukommt. IE ist berüchtigt dafür, dass er sowieso lieber selbst rät als den Content-Type zu beachten, und Firefox nimmt möglicherweise text/html als Default an.

    Struktur:
    [...]

    Blah blah bla. Sorry, ich möchte dir nicht zu nahe treten, aber all diese Informationen sind für dieses Verhalten nicht relevant. Wichtig ist einzig und allein das serverseitige Script, das die Ausgabe von Cars.exe produziert. Das muss einen HTTP-Header wie z.B. "Content-Type: text/html" erzeugen (möglichst noch ergänzt um die verwendete Zeichencodierung). Fehlt dieser Header ganz, so hat ein Browser ja nicht einmal eine Veranlassung, ein gleichnamiges meta-Element zu betrachten, denn er "weiß" ja nicht einmal, dass er da HTML bekommt.

    So long,
     Martin

    --
    Ein guter Lehrer muss seinen Schülern beibringen können,
    eine Frage so zu stellen, dass auch der Lehrer lernen muss,
    um die Frage beantworten zu können.
      (Hesiod, griech. Philosoph, um 700 v.Chr.)
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hallo Martin,

      ich habe einen neuen thread aufgemacht da es nichts mehr mit der verschiebung zu tun hat, für das nächste mal werde ich mir aber deinen rat zu herzen nehmen und es im alten thread absetzen.

      das es mit dem header zu tun hat habe ich schon vermutet, grob gesagt nehme ich eine fertige html seite und fülle sie mit daten und schicke sie an den browser, gleichzeig schreibe ich sie auf die festplatte um nachschauen zu können was ich verschickt habe, also dieses pause.html. es muss also einen unterschied zwischen versendeten und geschrieben daten geben. also einen fehler auf der cgi seite. kann man im browser sichtbar machen was er genau für einen string erhält ? wen ich den quelltext anzeige habe ich ja einen header. oder bin ich auf dem holzweg ? Sorry aber ich bin ein bisschen verwirrt, ich finde keinen aufhänger um dem fehler nahezu kommen.

      Gruss Horst

      1. Hallo,

        ich habe einen neuen thread aufgemacht da es nichts mehr mit der verschiebung zu tun hat, für das nächste mal werde ich mir aber deinen rat zu herzen nehmen und es im alten thread absetzen.

        ja, stimmt schon; das hier ist ein Fall, über den man geteilter Meinung sein kann.

        [...] was ich verschickt habe, also dieses pause.html. es muss also einen unterschied zwischen versendeten und geschrieben daten geben. also einen fehler auf der cgi seite.

        Irgendwo in diesem Ablauf. Du benennst die gespeicherte Datei auch als *.html - heißt das, du speicherst darin nur die Nutzdaten, aber nicht die HTTP-Header?

        kann man im browser sichtbar machen was er genau für einen string erhält ? wen ich den quelltext anzeige habe ich ja einen header. oder bin ich auf dem holzweg ?

        Ja, scheint so. Im Quelltext siehst du das head-Element von deinem HTML-Dokument, aber nicht den HTTP-Header. Den siehst du aber im Firefox beispielsweise mit der LiveHTTP-Extension - so habe ich ja letztens auch festgestellt, dass kein Content-Type gesendet wird.

        Aber da ich weder deine Daten- und Dateistruktur kenne, noch die von dir verwendete serverseitige Technik, geschweige denn weiß, wie deine Scripte zusammenarbeiten, kann ich dir da auch nicht viel mehr helfen als das Symptom zu benennen, wie es auf der Clientseite feststellbar ist.

        So long,
         Martin

        --
        Ich wollt', ich wär ein Teppich.
        Dann könnte ich morgens liegenbleiben.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Danke Vinzenz und Martin

          Bisher glaubte ich die HTML Seite wird ohne Adds an den Browser geschickt. Deshalb habe ich in meiner Umgebung den HTTP Eintrag rausgeschmissen, was erlaubt der sich in meine Seite reinzuschreiben ;-) und solange die Browser das schlucken fällts einem nicht auf.

          Wär ohne euch gar nie drauf gekommen. Merci.

          Gruss Horst

          ps: muss mich noch schlau machen was noch alles reingehört, bisher schreibts nur html/text und die länge.

      2. Hallo,

        kann man im browser sichtbar machen was er genau für einen string erhält ? wen ich den quelltext anzeige habe ich ja einen header.

        Nein. Die http-Header landen nicht im Quelltext der Seite. Dein CGI muss diese Header schicken. Diese Header kannst Du zum Beispiel mit der LiveHTTPHeaders-Extension des Firefox lesen.

        oder bin ich auf dem holzweg ?

        Ja. Die http-Header haben nichts mit dem head-Element von HTML zu tun, auch nichts mit dem als Header bezeichneten Teil des Layouts eines HTML-Dokuments.

        Konsultiere die Dokumentation Deiner Entwicklungsumgebung, welche Bibliotheken Dir das Senden der benötigten Header erleichtern.

        Freundliche Grüße

        Vinzenz