while (false = true) { … }

Einer unserer Kunden hat mehr als 3000 HTML-Files in seinem (unserem) CMS.
Die Berechtigungs-Verwaltung der einzelnen Ordner und HTML-Files wird als Tabelle angezeigt.
In jedem Verzeichniss ist eine weitere Tabelle mit Ordner und HTML-Files
Die Liste ist rekursiv aufgebaut.
Bei jedem Klick auf eine Zeile wird “selectRow ([id])” aufgerufen.
Jetzt ratet mal was die Javascript Funktion so lustiges mit for() Schleifen machen kann.

  1. <script>
  2. userSelection = new Array ();
  3. function selectRow (id) {
  4.     ……
  5.     var found = false;
  6.     for (var ix=0; ix < userSelection.length; ix++) {
  7.         if (id == userSelection[ix]) {
  8.             found = true;
  9.             break;
  10.         }
  11.     }
  12.     ……
  13.     if ( ! found) {
  14.         userSelection.push (id);
  15.         var rows = document.getElementsByTagName(‘tr’);
  16.         for (var ix=0; ix < rows.length; ix++) {
  17.             if (rows[ix].className == ‘selected’)
  18.                 rows[ix].className = ‘selectable’;         
  19.         }
  20.         var myObj = null;
  21.         for (var ix=0; ix < userSelection.length; ix++) {
  22.             myObj = document.getElementById(userSelection[ix]);
  23.             if (myObj)
  24.                 myObj.className = ‘selected’;
  25.         }
  26.     }
  27. }
  28. </script>

Der IE6 hat fast eine Minute gebraucht um alle tr´s auf der Seite anzuschauen den Style evlt. zu ändern und dann davon wieder rückgängig zu machen.
(Script ist zur Übersicht gekürzt / angepasst)


Das hier ist ein Javascript aus einem “Kontaktformular” – da wurde der Mail-Body komplett mit Javascript zusammen gesetzt.

  1. <script>
  2. ……
  3. var absender = "Absender:\n";
  4. var komm = "Sonstiges:\n";
  5. var trenn = "\n==================\n";
  6. var zeile = "\n";
  7. var z1 = document.web2fax.zahl1.value;
  8. var zimmer1 = "Einzelzimmer:" + z1;
  9. var z2 = document.web2fax.zahl2.value;
  10. var zimmer2 = "Doppelzimmer:" + z2;
  11. var z3 = document.web2fax.zahl3.value;
  12. var zimmer3 = "3-Bettzimmer:" + z3;
  13. var z4 = document.web2fax.zahl4.value;
  14. var zimmer4 = "Appartement:" + z4;
  15. var zimmer = zimmer1 + zeile + zimmer2 + zeile + zimmer3 + zeile + zimmer4;
  16. var p1 = document.web2fax.gesamt.value;
  17. var personen = "Personen insgesamt: " + p1;
  18. var v1 = document.web2fax.tag_von.value;
  19. var v2 = document.web2fax.monat_von.value;
  20. var v3 = document.web2fax.jahr_von.value;
  21. var von = "Anreise:" + v1 + v2 + v3;
  22. var b1 = document.web2fax.tag_bis.value;
  23. var b2 = document.web2fax.monat_bis.value;
  24. var b3 = document.web2fax.jahr_bis.value;
  25. var bis = "Abreise:" + b1 + b2 + b3;
  26. var a1 = document.web2fax.name.value;
  27. var a2 = document.web2fax.strasse.value;
  28. var a3 = document.web2fax.ort.value;
  29. var a4 = document.web2fax.fon.value;
  30. var a5 = document.web2fax.fax.value;
  31. var a6 = document.web2fax.email.value;
  32. var e1 = document.web2fax.pension.value;
  33. var extras = e1;
  34. var adresse = a1 + zeile + a2 + ", " + a3 + zeile + "Telefon: " + a4 + ", Fax: " + a5 + zeile + "Email: " + a6;
  35. var sonstiges = document.web2fax.kommentar.value;
  36. var inhalt = absender + adresse + trenn + zimmer + trenn + personen + trenn + extras + trenn + von + zeile + bis + trenn + komm + sonstiges;
  37. ……
  38. </script>

Irgendjemand (nicht von uns) hatte die gute Idee die Prüfung der Daten und die Mail-Body-Erstellung von Javascript neuzuschreiben, und zwar in PHP.
Das ist rausgekommen:

  1. <?php
  2. $absender = "Absender:\n";
  3. $komm = "Sonstiges:\n";
  4. $trenn = "\n<br>==================\n<br>";
  5. $zeile = "\n<br>";
  6. $z1 = $zahl1;
  7. $zimmer1 = "Einzelzimmer: " . $z1;
  8. $z2 = $zahl2;
  9. $zimmer2 = " Doppelzimmer: " . $z2;
  10. $z3 = $zahl3;
  11. $zimmer3 = " Personen insgesamt: " . $z3;
  12. $zimmer = $zimmer1 . $zeile . $zimmer2 . $zeile . $zimmer3 . $zeile . $zimmer4;
  13. $p1 = $gesamt;
  14. $personen = " Personen insgesamt: " . $p1;
  15. $v1 = $tag_von;
  16. $v2 = $monat_von;
  17. $v3 = $jahr_von;
  18. $von = "Anreise: " . $v1 . $v2 . $v3;
  19. $b1 = $tag_bis;
  20. $b2 = $monat_bis;
  21. $b3 = $jahr_bis;
  22. $bis = "Abreise: " . $b1 . $b2 . $b3;
  23. $a1 = $name;
  24. $a2 = $strasse;
  25. $a3 = $ort;
  26. $a4 = $fon;
  27. $a5 = $fax;
  28. $a6 = $email;
  29. $e1 = $pension;
  30. $extras = $e1;
  31. $adresse = $a1 . $zeile . $a2 . ", " . $a3 . $zeile . "Telefon: " . $a4 . ", Fax: " . $a5 . $zeile . "Email: " . $a6;
  32. $sonstiges = $kommentar;
  33. $inhalt = $absender . $adresse . $trenn . $zimmer . $trenn . $personen . $trenn . $extras . $trenn . $von . $zeile . $bis . $trenn . $komm . $sonstiges;
  34. $inhalt = "<font face=\"Verdana\" size=\"2\">".$inhalt."</font>";
  35. ?>

Leave a Reply

Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken.

Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.

Da einige von neuen Dingen nichts verstehen, halten wir es für notwendig, sie davor zu schützen. Dies ist im beidseitigen Interesse, da unnötige Angstzustände bei Ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsüchtigen Menschen schützt.

Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.

Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.
Quelle: http://www.gesetze-im-internet.de/urhg/__95a.html