Announcement

Collapse
No announcement yet.

formular geht nur mit Opera , nicht mit IE.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • formular geht nur mit Opera , nicht mit IE.

    tja , wie gesagt ich habe ein bestellformular auf einem webshop.
    seit einem jahr kann ich nur noch von opera aus bestellen.
    IE funktioniert nicht, es kommt kein rückmeldung vomm perl script auf dem server.
    ich suche dringend jemand der mir hilft.
    viele kunden können nicht bestellen..kein ahnung an was es liegt. ich könnte teile vom code des scripts hiereinposten..ist aber ziemlich groß.
    Immer wenn ich denk es geht nicht mehr, nehmen ich mir meine Shisha her. http://www.shisha.de

  • #2
    Naja ohne weitere Infos kann dir keiner helfe
    Christian

    Comment


    • #3
      schon klar, aber das sind ja so viele code zeilen..was für infos werden denn gebraucht

      Comment


      • #4
        das ist die funktion print email im basket.js auf dem rechner des kunden im frame (local):
        <pre>
        function printEMail() {
        var s = new String("");
        var msg = new String("");
        var aGb = new String("");
        var mailfrom = new String("");
        var Now = new Date();
        var DateStr = Now.getDate() + '.';
        var year = Now.getYear();
        if (year < 2000) year += 1900;
        if ((Now.getMonth()+1) < 10) DateStr += '0' + (Now.getMonth()+1) + '.' + year
        else DateStr += (Now.getMonth()+1) + '.' + year;
        msg = printMessage(DateStr);
        if (Kunde.email != "") {mailfrom = Kunde.email;} else {mailfrom = "meine [email protected]";}
        s += '<form method="post" action="http://www.meinedomain.de/cgis/mws_mail.pl" target="OrderWindow" onSubmit="return parent.initBasket(\'danke.html\',3000)">\n';
        s += '<input type="hidden" name="From" value="' + mailfrom + '">\n';
        s += '<input type="hidden" name="To" value="[email protected]">\n';
        s += '<input type="hidden" name="Subject" value="Bestellung bei mein shop">\n';
        s += '<input type="hidden" name="Message" value="' + convertMessage(msg) + '">\n';
        s += '<input type="hidden" name="Attachment" value="' + printAttachment(DateStr) + '">\n';
        s += '<font face="Arial, Helvetica, sans-serif" size="1"><input type="submit" value="Bestellung absenden" onclick="return pruefen()"></font></form>\n';
        return s;
        }
        </pre>

        -------------------------------------
        das ist das mailscript auf dem server:
        <pre>
        #!/usr/bin/perl -w
        #
        $mailprog = "/usr/sbin/sendmail";

        &ReadParse;
        &processOrder;
        &print_danke;
        exit(0);

        sub processOrder {
        $boundary = time;
        @str = ();
        push(@str,"| $mailprog -t");
        $- = 0;
        foreach $str (@str) {
        open(FILE, $str) || &return_failed_file_open($str);
        print FILE "To: $in{'To'}\n";
        print FILE "From: $in{'From'}\n";
        print FILE "Reply-To: $in{'From'}\n";
        print FILE "Subject: $in{'Subject'}\n";
        print FILE "X-Mailer: Super Mailer\n";
        print FILE "MIME-Version: 1.0\n";
        print FILE "Content-Type: multipart/mixed; boundary=\"_" . $boundary . "_\"\n\n";
        print FILE "--_" . $boundary . "_\n";
        print FILE "Content-Type: text/plain; charset=\"us-ascii\"\n\n";
        print FILE "$in{'Message'}\n";
        print FILE "--_" . $boundary . "_\n";
        print FILE "Content-Type: text/plain; charset=\"us-ascii\"\n";
        print FILE "Content-Disposition: attachment; filename=\"order" . $boundary . ".osm\"\n\n";
        print FILE "$in{'Attachment'}\n\n\n";
        print FILE "--_" . $boundary . "_\n";
        close(FILE);
        }
        #} wenn kein user email dann klammer

        # Send E-Mail to User
        #
        @str = ();
        push(@str,"| $mailprog -t");
        $- = 0;
        foreach $str (@str) {
        open(FILE, $str) || &return_failed_file_open($str);
        print FILE "To: $in{'From'}\n";
        print FILE "From: $in{'To'}\n";
        print FILE "Reply-To: $in{'To'}\n";
        print FILE "Subject: Für Ihre Unterlagen (Bestell-Kopie)\n";
        print FILE "X-Mailer: Supermailer\n\n";
        $in{'Message'} = "Hallo lieber Kunde, bla bla..
        \n\n".$in{'Message'};
        # $in{'Message'} = $in{'Message'}."XXX";
        print FILE "$in{'Message'}\n\n";
        close(FILE);
        }
        }
        sub print_danke {
        print "Content-type: text/html\n\n";
        print qq|</pre>
        <pre><html>
        <head>
        <title>$in{'Subject'}</title>
        </head>
        <body bgcolor="#FFFFFF" text="#000000" OnLoad="self.focus()">
        <center>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr valign="top" align="left">
        <td align="center">
        <form>
        <font face="Arial, Helvetica, sans-serif" size="2"><b>Bestellung erfolgreich übertragen!</b>
        <p><input type="button" value="OK" onclick="self.close()"></p>
        </form>
        </td>
        </tr>
        </table>
        </center>
        </body>
        </html></pre><pre>
        |;
        }

        sub return_failed_file_open {
        print "Content-type: text/html\n\n";
        print "Couldn't open file $_[0]: $!";
        exit(1); }

        sub ReadParse {
        if (@_) {
        local (*in) = @_;
        }
        local ($i, $loc, $key, $val);
        # Read in text
        if ($ENV{'REQUEST_METHOD'} eq "GET") {
        $in = $ENV{'QUERY_STRING'};
        } elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
        read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
        }
        # Puffern des Input
        $in_buffer = $in;
        @in = split(/&/,$in);
        foreach $i (0 .. $#in) {
        # Convert plus's to spaces
        $in[$i] =~ s/\+/ /g;
        # Convert %XX from hex numbers to alphanumeric
        $in[$i] =~ s/%(..)/pack("c",hex($1))/ge;
        # Split into key and value.
        $loc = index($in[$i],"=");
        $key = substr($in[$i],0,$loc);
        $val = substr($in[$i],$loc+1);
        $in{$key} .= '\0' if (defined($in{$key})); # \0 is the multiple separator
        $in{$key} .= $val;
        ## $in{'Message'} =~ s/\n//gi; ## eines von beidem...
        $in{'Message'} =~ s/\r//gi;
        }
        return 1; # just for fun
        }
        </pre>

        das problem ist nun das das fenster subprint danke zwar aufgeht, es steht aber nicht "Bestellung erfolgreich übertragen!" drin und die bestellung kommt auch nie an.
        nur mit oprea und mozilla geht es, mit IE 6 nicht
        Immer wenn ich denk es geht nicht mehr, nehmen ich mir meine Shisha her. http://www.shisha.de

        Comment


        • #5
          ich bekomme den html quelltext für das fenster "bestellung erfolgreich übertragen" hier nicht rein. der browser interprtiert das als html trotz pre`s .. Egal, müsste auch so verständlich sein
          Immer wenn ich denk es geht nicht mehr, nehmen ich mir meine Shisha her. http://www.shisha.de

          Comment


          • #6
            Wenn das ganze Quelltext für die Ausgabe ist, ist das zuwenig.

            Kompletter HTML TITLE HEAD und BODY fehl
            Christian

            Comment


            • #7
              Wie postet man html hier rein ?, wie in dem post vorhin geschrieben,der browser interprtiert das als html trotz pre`s ..

              der head usw. ist da mittendrin. wir hier nicht angezeigt
              Immer wenn ich denk es geht nicht mehr, nehmen ich mir meine Shisha her. http://www.shisha.de

              Comment


              • #8
                Also erstmal kann ich nichts ungewöhnlichen Im PERL-Skript sehen:

                - Die Paramterauflösung könnte einfacher sein.

                wenn du es selbst machen willst -> siehe hier im Forum -> erstes Posting -> Beispiele
                Ansonsten nimmt man eigentlich
                <pre>
                use CGI;
                my $cgi=new CGI;
                $name=$cgi->param("NAME");
                </pre>

                Wobei NAME der Name aus der HTML-Seite ist. das erspart das Ganze ReadParse

                - Der Interpreter sollte nicht mit -w aufgerufen werden

                #!/usr/bin/perl -w

                - Mailen tu ich anders:
                <pre>
                $recipient="cecke\@marquardtnet.info";
                $mailprg="/usr/sbin/sendmail";
                open (MAIL, "|$mailprg $recipient") || die "$mailprog!\n";
                print MAIL "To: $recipient\n";
                print MAIL "Reply-to: $email\n";
                print MAIL "Subject: WebSite C-Ecke\n\n";

                print MAIL "Eingang im Gästebuch\n\n";
                print MAIL "IP-Adr : $ipadresse\n\n";
                print MAIL "ID : $id\n\n";
                print MAIL "Name :$name\n\n";
                print MAIL "E-Mail : $email\n\n";
                print MAIL "Kommentar:\n$anzkommentar\n\n";
                close (MAIL);

                </pre>

                - Die Datumsermittlung im JavaScript sollte einfacher gehen

                <pre>
                aktDatum=new Date();
                document.write(aktDatum.getDate()+"."+(aktDatum.ge tMonth()+1)+"."+aktDatum.getFullYear());
                </pre>
                Hier sind keine führenden Nullen bei Monat Tag

                - Nicht klar ist mir

                if (Kunde.email != ...

                was das bewiken soll. Zurückgegeben wird immer ein String s mit Zeilenumbrüchen???

                Wenn du willst kannst du mir mal alles zumailen, dann schaue ich mir das an

                HTML-Datei
                JS-Datei
                PERL-Script
                und ????
                Christian

                Comment


                • #9
                  Ich krieg die krise :-)
                  - w wars.

                  ich habs rausgemacht und es funzt nun auch im IE.

                  Danke Herr Marquardt und danke Entwickler Forum.

                  Jetzt ist das wichtigste problem schon mal gelöst.

                  der rest muß erst mal warten.

                  danke nochmal

                  nomichae
                  Immer wenn ich denk es geht nicht mehr, nehmen ich mir meine Shisha her. http://www.shisha.de

                  Comment


                  • #10
                    ich kanns kaum glauben...da sind uns im letzten 1 jahr wahrscheinlich 80 % der gesamten bestellungen verloren gegangen ?

                    kaum war das -w weg konnte ich bestellen über IE6.

                    oder kann das auch eine unterschied in der version vom IE machen ?

                    was bewirkt das -w
                    Immer wenn ich denk es geht nicht mehr, nehmen ich mir meine Shisha her. http://www.shisha.de

                    Comment


                    • #11
                      Ist eigentlich für den PERL Debugger

                      :-
                      Christian

                      Comment

                      Working...
                      X