Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Per Klick Daten in neuem Fenster anzeigen
Frage
Hallo allerseits,
ich hab mal wieder eine kleine Frage:
Ich habe eine Liste von verschiedenen Usern, die in einer MySQL-Datenbank gespeichert sind. Nun möchte ich, dass man auf den Namen der jeweiligen Person klickt und sich daraufhin ein Fenster öffnet, in dem ein Textfeld steht, in dem der Name der Person steht, auf den man geklickt hat. Ich klicke also auf Test und es öffnet sich ein kleines Fenster, in dem ein Textfeld mit Test steht.
Gruß,
Üsch
Antwort 1 von rfb
diese "kleinen Fenster" nennt man allgemein PopUp.
Syntax zum Aufruf wird hier beschrieben: SelfHTML -> JavaScript -> window.open()
Darin wird ein HTML-Dokument geladen, welches beliebigen Inhalt haben kann.
Wo ist nun deine Frage dazu?
Syntax zum Aufruf wird hier beschrieben: SelfHTML -> JavaScript -> window.open()
Darin wird ein HTML-Dokument geladen, welches beliebigen Inhalt haben kann.
Wo ist nun deine Frage dazu?
Antwort 2 von Uesch
Ja, aber ich will doch, dass beim Klick auf einen Namen (der nicht innerhalb eines Formulars ist), der Name im neuen Fenster erscheint. Also du klicktst auf einen Namen, ein Fenster öffnet sich und da steht: Neue Email an: "Name".
Versteht ihr?
Versteht ihr?
Antwort 3 von rfb
Zitat:
Versteht ihr?
nach wie vor verstehe ich nicht wo dein Problem liegt! Kannst du kein PopUp machen? Bekommst du kein HTML-Dokument mit besagtem Inhalt (nur ein Name!) hin?Versteht ihr?
Zitat:
aber ich will doch
mal eine detaillierte Problembeschreibung incl. bisheriger Lösungsversuche und etwaiger Fehlermeldungen dabei liefern.aber ich will doch
Antwort 4 von Uesch
Ok, also:
Ich lasse mir mithilfe von PHP und MYSQL alle USer anzeigen, die in der Datenbank vorhanden sind. Dabei soll bei einem Klick auf irgendeinen Namen sich ein neues Fenster öffnen, in dem steht: Sie möchten eine Email schreiben an "Name dessen, auf den man vorher geklickt hat". Dann gibt es da ein kleines Formular und einen Button zum Abschicken. So nun ist die Frage wie man 1.: ihm sagt, dass beim Klick auf einen Namen, er diesen als Variable speichert und 2.: wie man im Popup genau den Namen dann anzeigt, auf den man zuvor geklickt hat! Ich hab es probiert mit einem Popup, aber das eigentliche Problem liegt dabei, dass ich nicht weiß wie man den namen als Variable speichert, denn ich möchte es nicht mit einem Formular machen!
Ich lasse mir mithilfe von PHP und MYSQL alle USer anzeigen, die in der Datenbank vorhanden sind. Dabei soll bei einem Klick auf irgendeinen Namen sich ein neues Fenster öffnen, in dem steht: Sie möchten eine Email schreiben an "Name dessen, auf den man vorher geklickt hat". Dann gibt es da ein kleines Formular und einen Button zum Abschicken. So nun ist die Frage wie man 1.: ihm sagt, dass beim Klick auf einen Namen, er diesen als Variable speichert und 2.: wie man im Popup genau den Namen dann anzeigt, auf den man zuvor geklickt hat! Ich hab es probiert mit einem Popup, aber das eigentliche Problem liegt dabei, dass ich nicht weiß wie man den namen als Variable speichert, denn ich möchte es nicht mit einem Formular machen!
Antwort 5 von dettlef
den namen übergibst du über eine an die popup-url angehängte variable: http://www.üsch.de/popup.php?name=detlef
Antwort 6 von Uesch
Dachte ich mir auch, aber dann sendet er das Formular ja direkt ab!
Antwort 7 von dettlef
welches formular? es ist richtig, dass man solche variablen normalerweise über formulare erzeugt/verschickt. daher vielleicht dein missverständnis. hier geht es aber nicht um ein formular. bei window.open gibst du die adresse des dokuments an, welches im aufpopenden fester angezeigt werden soll. und an diese adresse hängst du die variable dran (das ergebnis ist das gleiche, als hätte man ein formular der methode "get" mit einem inputfeld namens "name" und dem inhalt "detlef" abgeschickt. das heisst diese variable kann unter php ausgewertet werden, als käme sie von einem formular). php erzeugt dann den inhalt des popups mit dem namen des members. dieses dokument ist dann das "emailformular" und dieses wird dann erstmal nur angezeigt und nicht automatisch abgeschickt.
Antwort 8 von rfb
Vermutung: du möchtest nicht für jeden Namen ein eigenes Dokument ins PopUp laden?
nehmen wir mal an du hättest im Hauptdokument folgendes:
dann könnte die Funktion popup() so aussehen:
dies sollte dann die Datei formular.htm?Otto ins popup laden
in formular.htm erhältst du den Otto dann mittels
alles weitere bleibt dir überlassen.
nehmen wir mal an du hättest im Hauptdokument folgendes:
<span onclick="popup(this)">Otto</span> dann könnte die Funktion popup() so aussehen:
function popup(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formular.htm?"+wen, "Zweitfenster", "width=300,height=400,left=100,top=200");
MeinFenster.focus();
}
dies sollte dann die Datei formular.htm?Otto ins popup laden
in formular.htm erhältst du den Otto dann mittels
var wer = location.search.substr(1);alles weitere bleibt dir überlassen.
Zitat:
wie man 1.: ihm sagt
du solltest von Browsern als Browser reden -> auch wenn sie Ärger machen sind es nur Programme!wie man 1.: ihm sagt
Antwort 9 von Uesch
Vielen Dank,
ich habe jetzt eine Datei test.html, in der steht:
Dann hab ich eine Datei formular.htm, in der steht das:
Leider zeigt er im Popup aber nix an! Einfach nur Totenleere. Was mach ich falsch?
ich habe jetzt eine Datei test.html, in der steht:
<script>
function popup(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formular.htm?"+wen, "Zweitfenster", "width=300,height=400,left=100,top=200");
MeinFenster.focus();
}
</script>
<span onclick="popup(this)"><a href="#">Otto</a></span>Dann hab ich eine Datei formular.htm, in der steht das:
<script>var wer = location.search.substr(1);</script>Leider zeigt er im Popup aber nix an! Einfach nur Totenleere. Was mach ich falsch?
Antwort 10 von dettlef
alles was du hast ist eine scriptvariable mit dem inhalt des angeklickten namens. jetzt brauchst du ein bisschen html und ein formular und dann musst du den value von deinem textfeld^^ auf "wer" setzen:
http://de.selfhtml.org/javascript/objekte/elements.htm#value
http://de.selfhtml.org/javascript/objekte/elements.htm#value
Antwort 11 von Uesch
und was war dann der Sinn des "Otto"?
Antwort 12 von dettlef
Zitat:
und was war dann der Sinn des "Otto"?
und was war dann der Sinn des "Otto"?
du meinst von "?Otto". das war damit in location.search.substr(1) der name des users drinsteht. dieser kommt dann in die variable "wer" und schliesslich landet er im textfeld (durch document.formname.feldname.value=wer).
Antwort 13 von Uesch
und wie kriegt man Otto in die Variable?
Antwort 14 von dettlef
in die variable "wer"? so:
var wer = location.search.substr(1);
var wer = location.search.substr(1);
Antwort 15 von Uesch
Das heißt, ich habe die formular.htm, in der
var wer = location.search.substr(1); steht und eine zweite Datei test.html, in der <script>
function popup(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formular.htm?"+wen, "Zweitfenster", "width=300,height=400,left=100,top=200");
MeinFenster.focus();
}
</script>
<span onclick="popup(this)"><a href="#">Otto</a></span> steht. Wo genau kommt denn das Formular hin, von dem du vorhin gesprochen hast? In die formular.htm?Antwort 16 von dettlef
also der otto-link und die popup-funktion stehen in dem dokument, welches die mitglieder auflistet. das auslesen von location.search.substr(1) und das formular zum kontakten des mitglieds kommt in das popupdokument (formular.htm).
Antwort 17 von rfb
Zitat:
<script>
ist falsch, korrekte Syntax: <script>
<script type="text/javascript">Wozu soll der Link in
<span onclick="popup(this)"><a href="#">Otto</a></span> gut sein? Wenn du meine Funktion benutzen willst solltest du auch den Rest so machen wie vorgegeben oder alles umschreiben. So gibts höchstens eine Fehlermeldung!Und dettlef hat Recht -> du musst in formular.htm eine JavaScript-Funktion einbauen, die mittels
location.search.substr(1) den übergebenen Namen ausliest.Was du weiter damit machen willst entzieht sich meiner Kenntnis.
Mit
<script (schon wieder den type weggelassen - wo hast du den Unfug gelernt?)>var wer = location.search.substr(1);</script>hast du den Otto in der Variablen
wer. Um ihn anzuzeigen müsstest du wer zB. mit document.write(wer); irgendwie ausgeben!Antwort 18 von Uesch
Sehr geil.
Habs jetzt endlich verstanden und es klappt.
Danke an euch beide!
Habs jetzt endlich verstanden und es klappt.
Danke an euch beide!
Antwort 19 von Uesch
Ach noch eine Frage: Wie mach ich folgendes richtig:
Also dass im Textfeld Otto steht...
Danke,
Üsch
<input type="text" name="textfieldName" value="document.write(wer);" readonly size="16"><br>
Also dass im Textfeld Otto steht...
Danke,
Üsch
Antwort 20 von rfb
zB so:
dies im head der formular.htm:
und dies im body:
dies im head der formular.htm:
<script type="text/javascript">
window.onload=function () {
var wer = location.search.substr(1);
var feld=document.getElementsByName("textfieldName")[0];
if (feld) feld.value=wer;
}
</script>
und dies im body:
<input type="text" name="textfieldName" value="" readonly size="16">Antwort 21 von rfb
beim Durchsehen fällt mir auf: sollte der Name Leerzeichen enthalten, also zB Otto Normalverbraucher, gibts ein Problem, das aber durch 2 kleine Code-Änderungen umgangen werden kann.
var wen = ausloeser.firstChild.data;
wird zu
(wandelt Otto Normalverbraucher zu Otto%20Normalverbraucher)
und
var wer = location.search.substr(1);
zu
(zurück zu Otto Normalverbraucher)
var wen = ausloeser.firstChild.data;
wird zu
var wen = escape(ausloeser.firstChild.data);(wandelt Otto Normalverbraucher zu Otto%20Normalverbraucher)
und
var wer = location.search.substr(1);
zu
var wer = unescape(location.search.substr(1));(zurück zu Otto Normalverbraucher)
Antwort 22 von dettlef
grundsätzlich find ich es sowieso sauberer mit der member id zu arbeiten. bei nicknamen kommen zu den sonderzeichenproblemen im http-protokoll ja dann auch noch html-codeinjectionprobleme dazu (member mit namen, wie "<script>history.back()</script>" und so ;-)).
habe grade im firefox getestet:
name des members: "<img src='1.jpg'>"
ausgegeben mit der php-funktion htmlentities():
also noch alles im grünen bereich!
aber dann im popup mit:
wird das bild angezeigt!
habe grade im firefox getestet:
name des members: "<img src='1.jpg'>"
ausgegeben mit der php-funktion htmlentities():
<span onclick="popup(this)"><img src='1.jpg'></span>also noch alles im grünen bereich!
aber dann im popup mit:
document.write(unescape(location.search.substr(1)));wird das bild angezeigt!
Antwort 23 von rfb
@detleff:
kann ich nicht nachvollziehen,
Übrigens: wenn du document.write (und sein hässliches Brüderlein innerHTML) nicht verwendest, also so wie in Antwort 21 sauber arbeitest, bist du beim JavaScript auf der sicheren Seite.
Aber auch wenn da jemand mit viel Mühe Schadcode einschleust: es wird doch nur auf seiner eigenen Kiste ausgeführt!
Dass du serverseitig die Formulareingaben immer auf eingeschleusten Code überprüfen musst kann dir sowieso kein JavaScript abnehmen.
kann ich nicht nachvollziehen,
unescape(escape("<")) ergibt bei mir < und nicht <Übrigens: wenn du document.write (und sein hässliches Brüderlein innerHTML) nicht verwendest, also so wie in Antwort 21 sauber arbeitest, bist du beim JavaScript auf der sicheren Seite.
Aber auch wenn da jemand mit viel Mühe Schadcode einschleust: es wird doch nur auf seiner eigenen Kiste ausgeführt!
Dass du serverseitig die Formulareingaben immer auf eingeschleusten Code überprüfen musst kann dir sowieso kein JavaScript abnehmen.
Antwort 24 von dettlef
hab grad ein wenig gebastelt und habe gedacht das problem lokalisiert zu haben, aber die gegenprobe ist gescheitert. jetz bin ich wieder so weit wie am anfang. ;-)
aber egal. wollte trotzdem schon mal vorweg zu deinen aussagen stellung nehmen:
der code wird auf der kiste desjenigen ausgeführt, der dem einschleuser eine mail schicken möchte!
ganz andere baustelle: hier geht es darum, dass eine serverseitig getroffene sicherheitsmassnahme nachträglich von js sabotiert wird.
generell wollte ich ja nur darauf hinaus, dass man den umgang mit "fremdcode" weitestgehend vermeiden sollte und wenn möglich durch selbst erzeugten (member id) ersetzen. vor allem sollte man vermeiden, ihn durch eine "blackbox" wie js zu "jagen". und das ist unabhängig von der frage, ob das js gut oder schlecht programmiert ist.
aber egal. wollte trotzdem schon mal vorweg zu deinen aussagen stellung nehmen:
Zitat:
Aber auch wenn da jemand mit viel Mühe Schadcode einschleust: es wird doch nur auf seiner eigenen Kiste ausgeführt!
Aber auch wenn da jemand mit viel Mühe Schadcode einschleust: es wird doch nur auf seiner eigenen Kiste ausgeführt!
der code wird auf der kiste desjenigen ausgeführt, der dem einschleuser eine mail schicken möchte!
Zitat:
Dass du serverseitig die Formulareingaben immer auf eingeschleusten Code überprüfen musst kann dir sowieso kein JavaScript abnehmen.
Dass du serverseitig die Formulareingaben immer auf eingeschleusten Code überprüfen musst kann dir sowieso kein JavaScript abnehmen.
ganz andere baustelle: hier geht es darum, dass eine serverseitig getroffene sicherheitsmassnahme nachträglich von js sabotiert wird.
generell wollte ich ja nur darauf hinaus, dass man den umgang mit "fremdcode" weitestgehend vermeiden sollte und wenn möglich durch selbst erzeugten (member id) ersetzen. vor allem sollte man vermeiden, ihn durch eine "blackbox" wie js zu "jagen". und das ist unabhängig von der frage, ob das js gut oder schlecht programmiert ist.
Antwort 25 von rfb
Zitat:
der code wird auf der kiste desjenigen ausgeführt, der dem einschleuser eine mail schicken möchte!
E-Mail? Bahnhof?der code wird auf der kiste desjenigen ausgeführt, der dem einschleuser eine mail schicken möchte!
Zitat:
serverseitig getroffene sicherheitsmassnahme
bislang dreht es sich um:serverseitig getroffene sicherheitsmassnahme
-> das ist alles userseitig.
Antwort 26 von dettlef
@rfb:
ok. also nochmal alles ganz ausführlich:
üsch gibt eine liste von membern aus, die er aus einer mysql-datenbank liest. wenn man einen dieser namen anklickt, öffnet sich ein kontaktformular (siehe antwort 2) und man kann eine (art?) mail an jenen schicken.
nun hattest du ja eine lösung vorgeschlagen, wie man den namen des empfängers an das popup übermitteln kann, ohne dieses serverseitig dynamisch zu erzeugen, indem man mit js ein query an die popupurl hängt und dieses im popupdokument wieder mit js einliest. so weit so gut.
dann viel dir ein, dass es ein problem geben könnte, wenn der membername ein leerzeichen enthält und du hast das skript dafür modifiziert.
das grundlegende prinzip dieses problems ist es ja, dass man mit daten arbeitet, die man zum zeitpunkt der programmierung noch nicht kennt, da sie von den usern erzeugt werden.
das hat mich auf einen anderen gedanken gebracht, nämlich das artverwandte problem von userseitiger codeinjection.
vorweg:
natürlich muss man versuchen, massnahmen zu setzen, die es dem user von vorneherein verunmöglichen, code zu injezieren. aber das problem ist natürlich komplex (wie man auch hier im sn beobachten kann). lange rede, kurzer sinn: es kann immer passieren, was nicht passieren darf.
um zu prüfen ob eine codeinjection möglich ist, habe ich folgende annahme getroffen: ein user hat es geschafft, sich unter dem namen
"<img src='1.jpg'>" bei der seite anzumelden. dieser name steht in der datenbank des servers (es ist also kein lokales problem eines users, sondern betrifft alle!).
des weiteren habe ich angenommen, dass serverseitig die übliche standardmethode benutzt wird, daten, die von usern stammen, vor der ausgabe mit der funktion htmlentities() zu behandeln, um codeinjections unschädlich zu machen.
beim aufruf der memberliste wird der name also nicht als "<img src='1.jpg'>" sondern als "<img src='1.jpg'>" ausgegeben.
dementsprechend kommt der html-code nicht zur ausführung. es wird der name angezeigt und nicht das bild 1.jpg geladen.
nun kommt aber js ins spiel. und der "übeltäter" ist die data eigenschaft (nicht etwa document.write). statt dem korrekten textknoteninhalt "<img src='1.jpg'>" gibt sie den html-code "<img src='1.jpg'>" zurück, der letztlich im popup eingefügt wird und zur ausführung gelangt, d.h. das bild wird angezeigt.
dieses verhalten zeigen bei mir firefox, opera und der ie.
ok. also nochmal alles ganz ausführlich:
üsch gibt eine liste von membern aus, die er aus einer mysql-datenbank liest. wenn man einen dieser namen anklickt, öffnet sich ein kontaktformular (siehe antwort 2) und man kann eine (art?) mail an jenen schicken.
nun hattest du ja eine lösung vorgeschlagen, wie man den namen des empfängers an das popup übermitteln kann, ohne dieses serverseitig dynamisch zu erzeugen, indem man mit js ein query an die popupurl hängt und dieses im popupdokument wieder mit js einliest. so weit so gut.
dann viel dir ein, dass es ein problem geben könnte, wenn der membername ein leerzeichen enthält und du hast das skript dafür modifiziert.
das grundlegende prinzip dieses problems ist es ja, dass man mit daten arbeitet, die man zum zeitpunkt der programmierung noch nicht kennt, da sie von den usern erzeugt werden.
das hat mich auf einen anderen gedanken gebracht, nämlich das artverwandte problem von userseitiger codeinjection.
vorweg:
natürlich muss man versuchen, massnahmen zu setzen, die es dem user von vorneherein verunmöglichen, code zu injezieren. aber das problem ist natürlich komplex (wie man auch hier im sn beobachten kann). lange rede, kurzer sinn: es kann immer passieren, was nicht passieren darf.
um zu prüfen ob eine codeinjection möglich ist, habe ich folgende annahme getroffen: ein user hat es geschafft, sich unter dem namen
"<img src='1.jpg'>" bei der seite anzumelden. dieser name steht in der datenbank des servers (es ist also kein lokales problem eines users, sondern betrifft alle!).
des weiteren habe ich angenommen, dass serverseitig die übliche standardmethode benutzt wird, daten, die von usern stammen, vor der ausgabe mit der funktion htmlentities() zu behandeln, um codeinjections unschädlich zu machen.
beim aufruf der memberliste wird der name also nicht als "<img src='1.jpg'>" sondern als "<img src='1.jpg'>" ausgegeben.
dementsprechend kommt der html-code nicht zur ausführung. es wird der name angezeigt und nicht das bild 1.jpg geladen.
nun kommt aber js ins spiel. und der "übeltäter" ist die data eigenschaft (nicht etwa document.write). statt dem korrekten textknoteninhalt "<img src='1.jpg'>" gibt sie den html-code "<img src='1.jpg'>" zurück, der letztlich im popup eingefügt wird und zur ausführung gelangt, d.h. das bild wird angezeigt.
dieses verhalten zeigen bei mir firefox, opera und der ie.
Antwort 27 von dettlef
Zitat:
Übrigens: wenn du document.write (und sein hässliches Brüderlein innerHTML) nicht verwendest, also so wie in Antwort 21 sauber arbeitest, bist du beim JavaScript auf der sicheren Seite
Übrigens: wenn du document.write (und sein hässliches Brüderlein innerHTML) nicht verwendest, also so wie in Antwort 21 sauber arbeitest, bist du beim JavaScript auf der sicheren Seite
anscheinend gibt es aber auch ausnahmen. innerHTML gibt, im unterschied zu data, bei allen drei browsern den inhalt des textknotens korrekt wieder!
Antwort 28 von rfb
@detleff:
zusammenfassend kingt das für mich recht konstruiert
zu
innerHTML hingegen gibt einfach alles wieder, was im Quellcode steht und zwar insbesondere auch HTML-Code.
zur vermeintlichen Gefahr:
Schau dir die Scripte nochmals genau an: letztlich würde auch hier das "<img src='1.jpg'>" nur im value eines input-Elements auftauchen - also einer Stelle, die serverseitig widerum entschärft wird. Solange üsch sowas nicht per
zu
Aber deine Bedenken lassen sich mit folgendem leicht entschärfen:
(mit anderen Worten: ersetze alle kleiner/größer-Zeichen durch Leerzeichen)
zusammenfassend kingt das für mich recht konstruiert
zu
Zitat:
statt dem korrekten textknoteninhalt "<img src='1.jpg'>" gibt [data] den html-code "<img src='1.jpg'>"
die Methoden des node-Objekts geben das wieder, was im Dokumentenbaum ankommt, also auch nach der Auflösung der Entities.statt dem korrekten textknoteninhalt "<img src='1.jpg'>" gibt [data] den html-code "<img src='1.jpg'>"
innerHTML hingegen gibt einfach alles wieder, was im Quellcode steht und zwar insbesondere auch HTML-Code.
zur vermeintlichen Gefahr:
Schau dir die Scripte nochmals genau an: letztlich würde auch hier das "<img src='1.jpg'>" nur im value eines input-Elements auftauchen - also einer Stelle, die serverseitig widerum entschärft wird. Solange üsch sowas nicht per
document.write oder innerHTML ausgibt passiert damit nix, denn nur so bekommst er das in den Elementenbaum.zu
Zitat:
das grundlegende prinzip dieses problems ist es ja, dass man mit daten arbeitet, die man zum zeitpunkt der programmierung noch nicht kennt, da sie von den usern erzeugt werden.
üsch hat nie geschrieben, wie seine Datenbank zustande kommt.das grundlegende prinzip dieses problems ist es ja, dass man mit daten arbeitet, die man zum zeitpunkt der programmierung noch nicht kennt, da sie von den usern erzeugt werden.
Aber deine Bedenken lassen sich mit folgendem leicht entschärfen:
var wen = escape( ausloeser.firstChild.data.replace(/<|>/g, " "));(mit anderen Worten: ersetze alle kleiner/größer-Zeichen durch Leerzeichen)
Antwort 29 von rfb
ach so - für den Fall, dass sich jemand die Mühe macht, formular.htm durch direkte Eingabe in die Adresszeile aufzurufen (wozu auch immer), zusätzlich:
var wer = unescape( location.search.substr(1).replace(/<|>/g, " "));Antwort 30 von dettlef
ich habe nicht das gefühl, dass du den kern dessen, was ich meinte verstanden hast. seis drum.
Antwort 31 von rfb
So ist das mit den Gefühlen!
Aber nochmals mein Ansatz:
Ich gehe davon aus, dass üsch brauchbare Namen in seiner Namensdatenbank hat
ich verkompliziere die Problematik nicht durch Annahmen, die Datenbank enthielte bereits schadhafte Datensätze
mit der Variante der Datenübergabe zwischen Hauptseite und PopUp (escape und replace) kann kein HTML-Code in beiden JavaScripten auftauchen.
ich gehe davon aus, dass serverseitig eine sinnvolle Auswertung erfolgt.
mein Gefühl sagt mir, dass die JavaScript-Seite so sicher ist, wie JavaScript nun mal nur sein kann.
* "the worst case"
Aber nochmals mein Ansatz:
Zitat:
es kann immer passieren, was nicht passieren darf.
Wurst und Käse* wären hier: JavaScript ist deaktiviert. Dann passiert aber einfach gar nix. Inwiefern das schädlich ist, entzieht sich meiner Kenntnis. Frag doch mal üsch!es kann immer passieren, was nicht passieren darf.
* "the worst case"

