Seite 4 von 5
Verfasst: 04.01.2005, 22:19
von mirko
So wie du es aufgeschrieben hast, sieht es logisch und richtig aus, du hast Ahnung von der Sache.

Leider fällt mir nichts mehr ein. :boese: Das sieht alles total einfach aus und sollte genauso funktionieren.
Benutzername und Passwort für das Webinterface hast du aber in der RouterControl-Konfiguration korrekt eingegeben, genauso nach Änderung der Routers.dat RouterControl beendet und neu gestartet? Nicht das es an sowas simplen hängt.
Verfasst: 04.01.2005, 11:38
von CCS
ja das Verzeichnis der Seite ist aber wichtig, wegen dem =\"../cgi-bin/webcm\".
OK - aber es gibt nur die Verzeichnisse:
http://<Router>/html/
http://<Router>//cgi-bin/
Ausserdem ist wichtig, ob JavaScript noch ausgeführt wird, so das Variablen vor dem Abschickens des Formular noch geändert werden.
Auch richtig. JavaScript wird ausgeführt.
Es gibt ein Formular mit folgenden Anweisungen:
<form>
<input>
<input>
<input>
<input>
<input>
<input>
</form>
Dann ein weiteres mit den Anweisungen:
<form>
<input>
<input></td>
<a>
</form>
Und dann noch die \"Function\"
DoLogin, in der die Daten
Username und
Password vom Formular
usrInput in das Formular
formLogin umkopiert werden:
function DoLogin()
{
document.formLogin.elements[2].value=document.usrInput.username.value;
document.formLogin.elements[3].value=document.usrInput.password.value;
document.formLogin.submit();
}
Verfasst: 03.01.2005, 21:20
von mirko
ja das Verzeichnis der Seite ist aber wichtig, wegen dem =\"../cgi-bin/webcm\" . Ausserdem ist wichtig, ob JavaScript noch ausgeführt wird, so das Variablen vor dem Abschickens des Formular noch geändert werden.
Verfasst: 03.01.2005, 20:47
von CCS
Alternativ auch mal ohne <POST> versuchen.
Das habe ich versucht - keine Änderung.
Du solltest dir nochmal genau die deutsche HTML-Seite anschauen, also welches Formular mit welchem Eintrag versendet wird, wenn du dich anmeldest.
Ich kann dir gerne mal die HTML-Seite zusenden - vielleicht siehst du ja mehr. Aber es scheint mir genau der Part wichtig zu sein, den ich Anfangs schrieb:
<form>
<input>
<input>
<input>
<input>
<input>
<input>
</form>
Verfasst: 03.01.2005, 14:55
von mirko
Du solltest dir nochmal genau die deutsche HTML-Seite anschauen, also welches Formular mit welchem Eintrag versendet wird, wenn du dich anmeldest. Alternativ auch mal ohne <POST> versuchen.
Verfasst: 03.01.2005, 10:28
von CCS
Den Aufruf des CGI-Scripts muss du korrekt machen, d.h. der Pfad muss stimmen. Den kann ich natürlich aus deinen HTML-Teilen nicht erkennen.
Hm, es gibt auf dem Router nur drei Verzeichnisse:
a) \"root\" mit einer \"index.html\"
b) Unterverzeichnis \"root/cgi-bin\" mit \"webcm\"
c) Unterverzeichnis \"root/html\" mit diversen HTML-Dateien
Ja der Aufruf ist falsch, damit leidet er dich ins Frameset um.
Ja, schon möglich. Wenn ich die Login Seite des Routers über den Browser aufrufe, steht in der Adress-Zeile des Browsers nur:
http://<Router>/html/frame.html. Diese Seite (Frame-Set) bietet mir die Auswahl zwischen Deutsch und Englisch. Der Link zum deutschen Login erfolgt über Java-Script. Nach anklicken des \"deutsch\" Links erscheint im gleichen Browser-Fenster die deutsche Login-Seite. In der Adress-Zeile des Browsers steht immer noch http://<Router>/html/frame.html. Klicke ich nun mit der rechten Maustaste in dieses Fenster und wähle \"Frame im neuen Fenster öffnen\", so erhalte ich ein neues Fenster mit der gleichen deutschen Login-Seite - nur steht jetzt in der Adress-Zeile des Browsers:
http://<Router>/html/login_gm.html
Außerdem:
Bin ich erst mal eingeloggt, funktioniert ja die Statusabfrage von RouterControl (Online / Offline / IP-Adresse) korrekt über diese \"Einstiegsseite\":
cgi-bin/webcm?getpage=../html/status_gm/connstatus.htm&var:language=gm
Also dachte ich, daß zum Einloggen auch das folgende richtig wäre:
Zuerst, falsch:
<POST>html/login_gm.html?getpage=../html/home_gm.htm&.....
Dann mit deiner Hilfe:
<POST>cgi-bin/webcm?getpage=../html/login_gm.html&.....
Anmerkung zum Forum: Warum tauchen hier im Text manchmal völlig unmotiviert Leerzeichen auf ? Z.B. in meinem Beitrag von 20:42 Uhr
lang uage=gm oder 18:21 Uhr
l anguage=gm
Verfasst: 03.01.2005, 01:19
von mirko
Ja der Aufruf ist falsch, damit leidet er dich ins Frameset um. Den Aufruf des CGI-Scripts muss du korrekt machen, d.h. der Pfad muss stimmen. Den kann ich natürlich aus deinen HTML-Teilen nicht erkennen.
Verfasst: 02.01.2005, 22:40
von CCS
Was für ne Meldung wird angezeigt? Fehler 404 oder sowas?
Nein, kein 404, sondern:
HTML-Form Auth ResultCode: 200 Port: 80
Status1:
http://192.168.1.1/cgi-bin/webcm?getpag ... anguage=gm Port: 80
Status1 ResultCode: 200 Stream-Size: 88 Contents: <html><head><script>document.location.href=\"../html/frame.html\";</script></head></html> Port: 80
GetStatus1
GetStatus1 Offline? Verbindung1</td><tdheight>pppoe</td><tdheight>N/A
GetStatus1 Online
Status1-Message 0
Was allerdings seltsam ist - wenn ich absichtlich einen Fehler einbaue erhalte ich die selbe Meldung. Also z.B.
<POST>cgi-bin/webcm?getpage=../html/login_gm.html&.....
<POST>cgi-bin/webcm?getpage=../html/login_
xy.html&.....
Verfasst: 02.01.2005, 22:26
von mirko
Was für ne Meldung wird angezeigt? Fehler 404 oder sowas?
Verfasst: 02.01.2005, 20:42
von CCS
Du musst das HTML-Formular <form></form> mit RouterControl abschicken. Da steht:
<form>
also wahrscheinlich (da ich den Pfad der HTML-Seite nicht kenne) <POST>cgi-bin/webcm?<die>.
Tja, danke. Ich habe es mal mit folgendem probiert:
<POST>cgi-bin/webcm?getpage=../html/login_gm.html&errorpage=../html/index.html&login:command/username=%USERNAME%&login:command/password=%PASSWORD%&var:errormsg=Error&var:language=gm
Funktioniert leider auch nicht.
Verfasst: 02.01.2005, 19:24
von mirko
Du musst das HTML-Formular <form></form> mit RouterControl abschicken. Da steht:
<form>
also wahrscheinlich (da ich den Pfad der HTML-Seite nicht kenne) <POST>cgi-bin/webcm?<die>.
Verfasst: 02.01.2005, 18:21
von CCS
ich habe dir die neue RouterControl.exe geschickt.
Ich danke dir vielmals.
OK - die Anzeige von online / offline und, wenn online, die IP-Adresse funktionieren jetzt, wenn ... ja, wenn ich mich vorher im Web-Interface des Routers anmelde. Wenn ich mich aus dem Web-Interface auslogge, stimmt\'s wieder nicht. Da scheint also etwas mit dem Anmeldestring nicht zu stimmen.
Ich hatte mir ja aus:
<form>
<input>
<input>
<input>
<input>
<input>
<input>
</form>
<td>Einloggen Name</td>
<td><input>
<td>Passwort</td>
<td><input></td>
den folgenden String zusammengebastelt:
<POST>html/login_gm.html?getpage=../html/home_gm.htm&errorpage=../html/index.html&login:command/username=%USERNAME%&login:command/password=%PASSWORD%&var:errormsg=Error&var:language=gm
Hm, mir kommen die Variablen
login:command/password= und
login:command/username= komisch vor, denn im 1. Zitat heißen sie auch
input type=password name=password und
input type=\"text\" name=\"username\"
Ebenso die Variable
var:errormsg= mit dem Wert
Error ...
Wenn du hier nicht einen \"offensichtlichen\" Fehler siehst, werde ich mal im D-Link-Forum rumfragen, ob da jemand den richtigen Login-String kennt.
Verfasst: 02.01.2005, 15:49
von mirko
Hallo,
ich habe dir die neue RouterControl.exe geschickt. Damit es im RCEdit funktioniert, musst du das 0-Byte aber unbedingt entfernen, da RCEdit dieses Byte natürlich nicht ignoriert.
Verfasst: 02.01.2005, 14:30
von CCS
Die Version kann ich dir per E-Mail schicken, schreib mir eine E-Mail.
OK, haste jetzt ja.
Das Entfernen der 0-Bytes funktioniert aber nur, wenn diese an der ersten oder zweiten Stelle der HTML-Seite stehen.
Das habe ich noch mal überprüft - es
ist das erste Byte.
Verfasst: 02.01.2005, 14:07
von mirko
Die Version kann ich dir per E-Mail schicken, schreib mir eine E-Mail. Das Entfernen der 0-Bytes funktioniert aber nur, wenn diese an der ersten oder zweiten Stelle der HTML-Seite stehen.