netstein: unnötige leerzeilen

Eingabe mit opera in ein formular (mit java script erzeugt und dann an ein mailscript weitergeleitet) ergibt folgendes:

Datum: 27.03.2003
Anrede: Herr
Name: q q

das selbe Formular bei Eingabe mit IExplorer :

Datum: 27.03.2003

Anrede: Herr

Name: q q

woher kommen die doppelten Zeilenabstände ??
wie kann man den inhalt der variablen die da übergeben werden auslesen ? Um diese Url geht es ( mit opera kan man die rechtsklicksperre umgehen :-) http://www.Billigheadshop.de
da javascript das die daten übergibt ist in http://www.Billigheadshop.de/basket.js

  1. Hallo netstein, <- </faq/#Q-05a>

    woher kommen die doppelten Zeilenabstände ??

    keine Ahnung, bei was kommen die Zeilenabstände? Wie wird das verschickt?

    wie kann man den inhalt der variablen die da übergeben werden auslesen ?

    wie werden die Variablen übergeben? Welche Sprache?

    Um diese Url geht es ( mit opera kan man die rechtsklicksperre umgehen :-)

    man kann mit _jedem_ Browser die "rechtsklicksperre" umgehen.

    http://www.Billigheadshop.de

    -></faq/#Q-19> - und wo ist da ein Formular mit 3 Feldern?

    da javascript das die daten übergibt ist in http://www.Billigheadshop.de/basket.js

    du glaubst doch nicht ernsthaft, dass sich hier jemand die 1001 Zeilen Script anschaut, oder?

    Grüße aus Nürnberg <- </faq/#Q-05c>
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. hallo,

      ausserdem ist hier der teil der die eigenliche mail erzeugt.

      function printMessage(DateStr) {
        var versand = StringToFloat(Kunde.shipcost);
        var s = new String("");
        s += 'Datum:   ' + DateStr + '#';
        s += 'Anrede:  ' + Kunde.anrede + '#';
        s += 'Name:    ' + Kunde.vorname + ' ' + Kunde.nachname + '#';
        if (Kunde.firma == '') s += 'Firma:   '+ '-' + '#'
        else s += 'Firma:   ' + Kunde.firma + '#';
        // if (Kunde.zusatz != '') {s += 'bei:     ' + Kunde.zusatz + '#';}
        if (Kunde.zusatz == '') s += 'bei:     ' +  '-' + '#'
        else s += 'bei:     ' + Kunde.zusatz + '#';
        s += 'Strasse: ' + Kunde.strasse + '#';
        s += 'PLZ:     ' + Kunde.plz + ' ' + Kunde.ort + '#';
        s += 'Land:    ' + Kunde.land + '#';
        if (Kunde.telefon == '') s += 'Tel:     ' + '-' + '#'
        else s += 'Tel:     ' + Kunde.telefon + '#';
        s += 'Email:   ' + Kunde.email + '#';
        s += 'Versandart: #';
        s += Kunde.shipto + '; ' + Kunde.shiptext + '; ' + convdec(versand) + '#';
        s += 'Zahlungsart: ';
        s += Bestellung.paymethod + '#';
        s += '--------------------------------------------------------------------------------#';
        s += Bestellung.items + '#';
        s += '--------------------------------------------------------------------------------#';
       // s += gtsumme + '#';
       // s += rabatt + '#';
        s += Bestellung.subtotal + '#';
        s += Bestellung.delivery + '#';
        s += Bestellung.cod + '#';
        s += '--------------------------------------------------------------------------------#';
        s += Bestellung.total + '#';
        s += Bestellung.euro + '#';
        s += Bestellung.vat + '#';
        s += '--------------------------------------------------------------------------------#';
        s += '#Bemerkungen:#';
        if (Kunde.bemerkung == '') s+= 'keine'
        else s += convertLF(Kunde.bemerkung);
        s += '#';
        return s;
      }

      Gruß netstein

  2. hallo,
    <!-- das ist eine Anrede, auf die eigentlich Wert gelegt wird -->

    woher kommen die doppelten Zeilenabstände ??

    Läßt sich schwer nachprüfen, da du nicht sagst, um welches Formularfeld es sih handelt

    wie kann man den inhalt der variablen die da übergeben werden auslesen ?

    Mit einem Script vielleicht?

    mit opera kan man die rechtsklicksperre umgehen :-)

    mit allen anderen Browsern auch. Über den Sinn solcher "Sperren" gibt es viel Lesestoff im Archiv.

    da javascript das die daten übergibt ist in http://www.Billigheadshop.de/basket.js

    In meinem Cache ist es jetzt auch. Aber das Teil ist 48 kb groß und hat über tausend Zeilen. Es ist bissel viel verlangt, genau die Zeile zu finden, um die es geht, vor allem, weil da noch jede Menge weiterer (CGI-)Scripts und auch Applets aufgerufen werden.

    Es wäre gut, wenn du deine Frage präzisieren könntest.

    Christoph S.
    <!-- und das ist ein kurzer Gruß am Ende, zur Nachahmung empfohlen -->

    1. hallo,

      welches Formularfeld

      es handelt sich um alle Felder.
      das sieht dann so aus:

      Datum: 27.03.2003

      Anrede: Herr

      Name: q q
      die restlichen felder sind auch mit leerzeilen dazwischen, ich habe sie weggelassen.

      Es ist bissel viel verlangt, genau die Zeile zu finden, um die es geht, vor allem, weil da noch jede Menge weiterer (CGI-)Scripts und auch Applets aufgerufen werden.

      die zeile ist von 991 bis 1021 und sieht so aus:

      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 = "netstein@gmx.net";}
        s += '<form method="post" action="http://www.billigheadshop.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="netstein@gmx.net">\n';
        s += '<input type="hidden" name="Subject" value="Bestellung bei GAIA Trading">\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';
      //----------------das onclick leitet die Überprüfung für die AGBs ein
        return s;

      Gruß netstein

      1. guten Abend,

        hallo,

        nabitte, geht doch ;-)

        die zeile ist von 991 bis 1021 und sieht so aus:

        [...]
        ok, die Angabe der Zeilennummer hätte mir auch gereicht, aber andere Mitleser haben dein JS-File vielleicht nicht in ihrem Cache.
        Ich bin mir nicht sicher, aber ich glaube, deine Fragestellung hat mit diesen Javascript-Zeilen gar nichts zu tun. Dein Javascript nimmt ja nur die Variablen entgegen, die dann serverseitig aufbereitet und wieder ausgegeben werden mit

        s += '<form method="post" action="http://www.billigheadshop.de/cgis/mws_mail.pl"

        Also steckt das Problem wahrscheinlich in "mws_mail.pl".

        Du kannst aber mal versuchen, bei deinen verborgenen Formularfeldern die Zeilenumbrüche wegzulassen (das "\n" am Zeilenende), beispielsweise hier:

        s += '<input type="hidden" name="To" value="netstein@gmx.net">\n';

        Sehr aussichtsreich ist das allerdings nicht. Ich denke jedoch, daß es mit den "\n" zu tun hat in deiner Gesamtkonstruktion.

        Grüße aus Berlin

        Christoph S.

        1. guten Abend,

          Du kannst aber mal versuchen, bei deinen verborgenen Formularfeldern die Zeilenumbrüche wegzulassen (das "\n" am Zeilenende), beispielsweise hier:

          s += '<input type="hidden" name="To" value="netstein@gmx.net">\n'

          Ich glaube auch das es was mit der mws_Mail.pl zu tun hat.
          die /n weglassen - ich werds  mal probieren.
          das oberkomische ist : es wurde nix geändert an all den scripten.
          von heute auf morgen ging es auf einmal anders.
          und mit opera geht es immer noch richtg.
          unten das mail.pl

          Grüße Netstein

          #!/usr/bin/perl

          $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);
            }
          }

          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;
            }
            return 1; # just for fun