Umleitung durch Eingabe eines Benutzernames auf Benutzer-Seite
mr.magic
- javascript
0 EKKi0 mr.magic0 EKKi
0
Gunnar Bittersmann
Hallo miteinander,
Ich versuche folgendes zu machen, bekomme es aber einfach nicht hin.
Ich möchte eine mehr oder weniger simple HTML Seite generieren, die im Grossen und Ganzen nichts weiteres bietet als ein Eingabefeld, in welchem ein User seinen Benutzernamen eingeben kann.
Anschliessend soll er anhand seiner Eingabe (seines Benutzernamens) auf eine entsprechende Seite oder ein Verzeichnis weitergeleitet werden.
Gibt der Benutzer also beispielsweise hans ein, dann soll er automatisch auf das Verzeichnis /safe/hans weitergeleitet werden.
Ich habe dies nun versucht mittels einem Java Text Scipt zu realisieren. Jedoch erhalte ich immer wieder einen Seitenfehler wenn ich den Benutzernamen eingegeben habe und versuche diesen abzusenden.
Mein Quelltext sieht wie folgt aus:
----------------------------------------------------------------------------
<!-- saved from url=(0022)http://internet.e-mail -->
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="de">
<title>PW</title>
<script type="text/javascript">
function gotoPage () {
currentURL=new String(this.location);
var slashPos=currentURL.lastIndexOf('/');
var newURL=currentURL.substring(0, slashPos) + '/secure/' + document.pw_form.T1.value + '';
this.location=newURL;
}
</script>
</head>
<body background="images/exptextb.jpg" style="font-family: Verdana">
<h1>Geschützter Bereich</h1>
<hr>
<p style="margin-top: 0; margin-bottom: 0">Bitte geben Sie den Benutzernamen (1)
ein und klicken auf den Button "Enter" (2)</p>
<p align="left" style="margin-top: 0; margin-bottom: 0"> </p>
<p align="left" style="margin-top: 0; margin-bottom: 0"> </p>
<div align="left">
<table style="border-collapse: collapse;" id="AutoNumber1" border="0" bordercolor="#111111" cellspacing="0" width="62%">
<tr>
<form method="POST" name="pw_form" onSubmit action="--WEBBOT-SELF--">
</form>
</tr>
<caption></caption>
</tr>
<caption></caption>
</tr>
<caption></caption>
<tr>
<td width="100%">Benutzername <input name="T1" size="20" type="text"> <input value="Enter" type="button" onclick="javascript:gotoPage();"><font size="1">
Return-Taste nicht gestattet</font></td>
</tr>
</form>
</tr>
</form>
</table>
</div>
<p> </p>
<hr>
<p>Anmeldung für einen Zugang bitte <b><blink>
<a target="_blank" href="anmeldung.htm">hier</a></blink></b> anfordern.</p>
<p>Die Bestätigung erfolgt schriftlich an Ihre Adresse.</p>
<p> </p>
<p> </p>
</body>
</html>
----------------------------------------------------------------------------
Hat mir jemand einen Tipp oder eine Idee was ich falsch gemacht habe, oder wieso es nicht funktioniert, oder allenfalls Alternativvorschläge.
Ich bin Euch für jeden Input dankbar.
Freundliche Grüsse,
mr.magic
Mahlzeit,
Ich habe dies nun versucht mittels einem Java Text Scipt zu realisieren. Jedoch erhalte ich immer wieder einen Seitenfehler wenn ich den Benutzernamen eingegeben habe und versuche diesen abzusenden.
Was meinst Du mit einem "Seitenfehler"? Aussagekräftige Fehlermeldungen sind das A und O ... benutze also einen vernünftigen Browser (nein, damit meine ich NICHT den IE!) und schau in dessen Fehlerkonsole nach.
<!-- saved from url=(0022)http://internet.e-mail -->
Ich bezweifle, dass es sinnvoll ist, einen Kommentar VOR irgendetwas anderem in eine Datei zu schreiben - außer, Du willst den IE explizit in den Quirks-Modus versetzen (was ich persönlich für wenig seinnvoll erachte).
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
...
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Schlechte Wahl - was machen Leute, die kein Windows haben?
<script type="text/javascript">
function gotoPage () {
currentURL=new String(this.location);
var slashPos=currentURL.lastIndexOf('/');
var newURL=currentURL.substring(0, slashPos) + '/secure/' + document.pw_form.T1.value + '';
this.location=newURL;
}
</script>
Hast Du probeweise mal versucht, den Wert der Variablen "newUrl" z.B. mit einem http://de.selfhtml.org/javascript/objekte/window.htm#alert@title=alert() auszugeben?
<h1>Geschützter Bereich</h1>
Irrtum. Geschützt ist da leider gar nichts (s.u.).
<p align="left" style="margin-top: 0; margin-bottom: 0"> </p>
<p align="left" style="margin-top: 0; margin-bottom: 0"> </p>
Zwei leere Absätze?
<form method="POST" name="pw_form" onSubmit action="--WEBBOT-SELF--">
Ein leeres "onsubmit"-Attribut?
<caption></caption>
Eine leere Tabellenüberschrift?
<caption></caption>
Noch eine?
<caption></caption>
Und noch eine?
<td width="100%">Benutzername <input name="T1" size="20" type="text"> <input value="Enter" type="button" onclick="javascript:gotoPage();"><font size="1">
Das "http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick@title=onclick"-Attribut enthält den Javascript-Code, der vom Browser beim Anklicken des Elements ausgeführt wird. Der Pseudo-Event-Handler "http://de.selfhtml.org/javascript/sprache/eventhandler.htm#javascript@title=javascript:" hat dort nichts verloren.
Return-Taste nicht gestattet</font></td>
Das lässt sich doch durch Javascript abfangen ...
</form>
</tr>
</form>
Wo ist das öffnende <form>-Tag des zweiten Formulars?
Hat mir jemand einen Tipp oder eine Idee was ich falsch gemacht habe, oder wieso es nicht funktioniert, oder allenfalls Alternativvorschläge.
Also einen generellen Tipp habe ich schonmal: validiere Deine Seite(n)!
Ansonsten ist Dir aber klar, dass Dein "Anmeldekonzept" vor Sicherheitslücken nur so strotzt und es eher lächerlich wirkt, dass man sich extra anmelden muss und die Anmeldung "schriftlich bestätigt" wird usw.? Wenn ich den Benutzernamen eines registrierten Benutzers kenne, kann ich die Adresse auch direkt eingeben und ich bin auf dessen Seite ... wie sinnvoll ist das?
MfG,
EKKi
Danke für die vielen Inputs.
Nun, um ganz ehrlich zu sein, hatte mir seinerzeit jemand diesen Code geschrieben, und es funktionierte dann auch alles, genauso wie gewünscht, bis ich dann eines Tages die Datei im wysywyg-Modus optisch verändert habe, wobei mir irgendwelche HTML Codes rausgenommen wurden. Seither bringe ich es nicht wieder zum Laufen.
Okay, also als erstes mal zur Fehlermeldung:
Die Firefox Fehlerkonsole gibt mir lediglich dieses einen Fehler heraus:
Fehler: document.pw_form.T1 has no properties
Quelldatei: http://www.chiquet.ch/pw.htm
Zeile: 13
Somit muss es also mindestens in diesem Code-Abschnitt einen Fehler geben:
var newURL=currentURL.substring(0, slashPos) + '/secure/' + document.pw_form.T1.value + '';
Natürlich hast Du recht was die META Tags und den Kommentar am Anfang der Seite angeht. Dieses habe ich bereits entsprechend geändert.
Nur kurz zum besseren Verständnis. Diese Seite mit der Benutzerabfrage soll keinen Passwortschutz darstellen. Sie soll lediglich dazu dienen, einen Benutzer nach Eingabe des Benutzernamens auf ein entsprechendes Verzeichnis weiterzuleiten. Das Verzeichnis selbst ist dann natürlich mittels entsprechenden Berechtigungen geschützt, so dass nach der Umleitung auf den korrekten Ordner das Anmeldefenster für User + PWD erscheint.
Diese Eingabe und Umleitefunktion soll dem Benutzer lediglich dabei helfen, direkt in sein Verzeichnis "jumpen" zu können, ohne dass er jedesmal denn Ellenlangen URL eingeben muss. Und dies sollte aber eben Variabel funktionieren, so dass ich dem HTML Code nicht sagen muss, welcher Benutzer wohin geleitet wird, indem ich die Namen der Ordner angeben muss, sondern sich das Script einfach selbst die Eingabe herausnimmt und dies entsprechend an den Vordefinierten URL anhängt.
Ich werde mich jetzt ersteinmal Deinen Antworten widmen, und versuchen die Dinge so abzuändern, wie von Dir geschildert, respektive verwiesen.
Danke schon mal soweit, ich hoffe ich bekomm dass als "Rookie" irgendwie hin.
Freundliche Grüsse,
mr.magic
Mahlzeit,
Die Firefox Fehlerkonsole gibt mir lediglich dieses einen Fehler heraus:
Fehler: document.pw_form.T1 has no properties
Quelldatei: http://www.chiquet.ch/pw.htm
Zeile: 13
Naj, das ist doch schonmal was. Und zwar schon extrem hilfreich.
Somit muss es also mindestens in diesem Code-Abschnitt einen Fehler geben:
var newURL=currentURL.substring(0, slashPos) + '/secure/' + document.pw_form.T1.value + '';
Nein, dort nicht - an ganz anderer Stelle:
<form method="POST" name="pw_form" onSubmit action="--WEBBOT-SELF--">
</form>
Hier öffnest und schließt Du gleich wieder ein Formular.
[...]
<td width="100%">Benutzername <input name="T1" size="20" type="text"> <input value="Enter" type="button" onclick="javascript:gotoPage();"><font size="1">
Dieses <input>-Element befindest sich also überhaupt gar nicht IM Formular "pw_form" - kann also folglich überhaupt nicht per "document.pw_form.T1" angesprochen werden.
MfG,
EKKi
@@EKKi:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Schlechte Wahl - was machen Leute, die kein Windows haben?
Sich weniger ärgern.
Ansonsten http://forum.de.selfhtml.org/archiv/2006/10/t139034/#m903221
Windows-1252 könnte eine bessere Wahl sein als ISO 8859-1. Aber natürlich keine bessere als UTF-8.
Live long and prosper,
Gunnar
Hallo Gunnar,
Schlechte Wahl - was machen Leute, die kein Windows haben?
Sich weniger ärgern.
sei Dir da nicht so sicher. Über SuSE (6,x, 7.x, damals noch so geschrieben) hab' ich mich so geärgert, dass ich bis heute die Finger davon gelassen habe. So schlimm wie diese Distribution (zumindest damals) war noch keine Windowsversion - außer vielleicht Windows 98, das ich als Admin verflucht, aber persönlich nie produktiv benutzt habe.
Freundliche Grüße
Vinzenz