dey: a bissle overschämt is scho

Servus
Ich bin mir schon im klaren, dass mein Anliegen ein bischen frech ist, da der Code aber sehr kompliziert scheint, Frage ich trotzdem:
In angehängtem Code werden die Datenbankeinträge für ein Gästebuch (Fremdanbieter) ausgelesen und zu 6 Einträgen pro Seite dargestellt. Genau diesen Wert 6 möchte ich erhöhen. Aber wo? Es sind doch ein paar 6er und 7er (wär ja auch denkbar) im code. Kann mir jemand die Stelle zeigen?

---------------------
gb.js:
// [ ** AUTOGENERATED ** ]
// Copyright (c) 2001 by Content Management AG, Cologne, Germany
// All Rights reserved
var _qxe_=['A','11','Alwor%3F','%28ee%3F','2','lwor','%3F','%28'];
__y(_qxe_);
function __y(l0) {
var re = /+/gi;
var l7='u'.charCodeAt(0);
var l8='\'.charCodeAt(0);
for ( var l1=0;(l1<l0.length) ;l1++){
var l3='';
var l4=unescape(l0[l1].replace(re, ' '));
for (var l2=0;l2<l4.length;l2++){
var l5=(l4.charCodeAt(l2))-2;
var l6;
if (l5==l8 && l1 < l0.length+5 && (l4.charCodeAt(l2+1)) - 2 == l7) {
eval('l6 = "\u' + l4.substring(l2+2,l2+6) + '";');
l2+=5;
} else if (l5==l8 && l1 < l0.length && (l4.charCodeAt(l2+1)) - 2 == l8) {
l6='\';
l2+=1;
} else if (l5<=0)
l6=String.fromCharCode(l5+255);
else
l6=String.fromCharCode(l5);
l3+=l6;
}
l0[l1]=l3;
}
}

function cleanupPath(path)
{
var l5027=path.indexOf(_qxe_[0]);

I6530:{I6529:{if (!(l5027<0)) break I6529;
return path;

break I6530;
}
return path.substring(0,l5027);

}

}

function gbJumpTo(l5028)
{
var l5029=document.location.protocol+_qxe_[1]+document.location.host+cleanupPath(document.location.pathname)+_qxe_[2]+l5028+_qxe_[3]+Math.random();

document.location.href=l5029;
}

function gbGetActualJumpPos()
{
var l5030=_qxe_[4];

var l5031=_qxe_[5];

var query=document.location.search;

I6531:{if (!(query && l5031)) break I6531;
{
var l5032=-1;

var l5033=-1;

var l5034=l5031.length+2;

startidx=query.indexOf(_qxe_[0]+l5031+_qxe_[6]);
I6532:{if (!(startidx==-1)) break I6532;
startidx=query.indexOf(_qxe_[7]+l5031+_qxe_[6]);
}

I6533:{if (!(startidx!=-1)) break I6533;
{
l5033=query.indexOf(_qxe_[7],startidx+l5034);
I6535:{I6534:{if (!(l5033!=-1)) break I6534;
l5030=query.substring(startidx+l5034,l5033);
break I6535;
}
l5030=query.substring(startidx+l5034);
}

}

}

}

}

return l5030;

}
---------------

Aufruf in HTML:
<SCRIPT src="gb/gb.js"></SCRIPT>

<SCRIPT>var _gbjump_ = gbGetActualJumpPos();document.write("<SC"+"RIPT "  + "src='"  + "http://mooby05.cm4all.com/cgi-bin/CMGuestbook"  + "?uid=1593apt040inx2vb"  + "&jump=" + _gbjump_  + "'>"  + "</SC"+"RIPT>");</SCRIPT>

bydey

  1. Hey Dey,

    Ich bin mir schon im klaren, dass mein Anliegen ein bischen frech ist, da der Code aber sehr kompliziert scheint...

    Deswegen gibt es jetzt auch voll die Self-Antwort:

    gb.js: ...

    Der Code ist so völlig unlesbar.
    Das kannst _du_ ganz einfach ändern. Rücke den Code richtig ein und vergebe einigermassen sinnvolle Variablennamen.
    Das geht ohne das man den Code verstehen muss. Hinterher ist es dann aber einfacher das Ganze zu lesen.

    Beispiel:

    var q_text=['A','11','Alwor%3F','%28ee%3F','2','lwor','%3F','%28'];
    decode(q_text);
    function decode(text)
    {
      var re = /+/gi;
      var code_u='u'.charCodeAt(0);
      var code_backslash='\'.charCodeAt(0);
      for ( var k=0;(k<text.length) ;k++)
      {
        var ziel='';
        var c=unescape(text[k].replace(re, ' '));
        for (var n=0;n<c.length;n++)
        {
          var b=(c.charCodeAt(n))-2;
          var a;
          if (b==code_backslash && k < text.length+5 && (c.charCodeAt(n+1)) - 2 == code_u)
          {
            eval('a = "\u' + c.substring(n+2,n+6) + '";');
            n+=5;
          }
          else if (b==code_backslash && k < text.length && (c.charCodeAt(n+1)) - 2 == code_backslash)
          {
            a='\';
            n+=1;
          } else if (b<=0)
            a=String.fromCharCode(b+255);
          else
            a=String.fromCharCode(b);
          ziel+=a;
        }
        text[k]=ziel;
      }
    }

    Die Variablen habe ich einfach erstmal irgendwie 'üblicher' benannt, hauptsache erstmal das man sie auseinanderhalten kann. (Einfach mit Replace im Editor deiner Wahl ersetzen.)

    Gruss,
      Carsten

    1. Servus  Carsten

      Das macht schon Sinn was du da sagst aber:
      1. Habe ich erst da halbwegs Überblick gewonnen, wo du Klartext wie "Ziel" verwendest. a, b ,c kann ich auch nicht besser einordnen und
      2. Verstehe ich die einzelnen Funktionen dennoch nicht

      Ich kann jetzt quasi nur die unverständliche Variable l5027 durch eine mir angenehmere fx1 ersetzen und mich weiter wundern.
      Unter ASP würde ich das glaube ich anders machen. Überhaupt kommt mir das ganze sehr kompliziert.

      bydey

      1. Hi Dey,

        Das macht schon Sinn was du da sagst aber:

        1. Habe ich erst da halbwegs Überblick gewonnen, wo du Klartext wie "Ziel" verwendest. a, b ,c kann ich auch nicht besser einordnen und
        2. Verstehe ich die einzelnen Funktionen dennoch nicht

        Das kommt ja auch später.

        Ich kann jetzt quasi nur die unverständliche Variable l5027 durch eine mir angenehmere fx1 ersetzen und mich weiter wundern.

        Es geht dabei vor allem darum das man sie besser wiedererkennt, a, b und c lässt sich auseinanderhalten, l52053 l52057 ... ungleich schwerer.

        Unter ASP würde ich das glaube ich anders machen. Überhaupt kommt mir das ganze sehr kompliziert.

        Es ist offensichtlich dazu gedacht nicht verstanden zu werden.

        Die Funktion decode() verändert den Inhalt vom q_text-Array.
        Das Ergebnis kann man sich ja mal mit document.write ausgeben lassen. Dazu muss man die Funktion noch nicht mal verstehen.
        Danach kann man dann
        q_text=['?','//','?jump=','&cc=','0','jump','=','&']; einsetzen und den decode() rauslöschen. Dann weiter an den entsprechenden Stellen im Programm die Strings direkt einsetzen.

        Das dumme daran ist nur, dass du dabei ne Menge JavaScript und Programmieren lernst aber dein Problem nicht gelöst bekommst.
        Denn die feste Anzahl von 6 Einträgen wird überhaupt nicht durch dieses Script vorgegeben.

        Gruss,
          Carsten

        1. Servus Carsten

          Gut Problem nicht gelöst, aber immerhin das Gefühl gewart auch nicht einfach nur zu blöd gewesen zu sein.
          Danke dir für die ruhige Nacht.

          bydey

  2. Servus
    Ich bin mir schon im klaren, dass mein Anliegen ein bischen frech ist, da der Code aber sehr kompliziert scheint, Frage ich trotzdem:
    In angehängtem Code werden die Datenbankeinträge für ein Gästebuch (Fremdanbieter) ausgelesen und zu 6 Einträgen pro Seite dargestellt. Genau diesen Wert 6 möchte ich erhöhen. Aber wo? Es sind doch ein paar 6er und 7er (wär ja auch denkbar) im code. Kann mir jemand die Stelle zeigen?

    Auch ich habe keine Lust mich da durchzuarbeiten. Das ist unübersichtlicher Spaghetticode, mit unglaublichen Konstrukten, entweder ist derPRogrammierer genial oder verrückt.

    Aber ein Gästebuch mit so einem Code würde ich sofort abbestellen. Das kann ja nicht funktionieren. (auch wenn es das zufällig bei dir tut).
    Oder ist der Mehrwert durch dieses Skript so enorm, dass man es haben muss?
    (was ich nicht glaube, da die ich selten ein Gästebuch gesehen habe, wo JS überhaupt notwendig war)

    Struppi.

    1. Servus Struppi

      Kann ich alles nicht mit Bestimmtheit sagen. Problem ist, wenn Du von anderen eine teils fertige HP übernimmst.
      Ich denke das Gästebuch wurde im Zusammenhang mit dem Webcreator von 1und1 erstellt.
      Den code verstehe kaum bis gar nicht. Wie schon erwähnt ich würde und werde es in ASP auch anders lösen.
      Bis dahin wollte ich nur den Unfug mit der Begrenzung von 6 Einträgen pro Seite entfernen.

      bydey