RouterControl + Speedtouch 546v6

Fragen, Tipps & Tricks zu Freeware-Programmen 0190 Warner, Alle meine Passworte, SuperSpamKiller Standard usw.

Moderatoren: Ralf, mirko

Benutzeravatar
mirko
Beiträge: 23077
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

da gebe ich auch auf, das kann man nicht mehr überblicken. Am besten einen Netzwerksniffer nehmen und aufzeichnen was beim Trennen der Verbindung gesendet wird.
qotsa
Beiträge: 9
Registriert: 17.04.2007, 23:45

Beitrag von qotsa »

Hier der komplette Quelltext der Startseite (10.0.0.138) des Routers:

[html]
<DOCTYPE>
<html>
<head>
<title>SpeedTouch - POS1</title>
<meta>
<script>var g_navitem = -1;</script>
<script> var g_focus = -1;</script>
<script></script>

<link>
</head>
<body>
<noscript>
<h1>Thomson - SpeedTouch</h1>
<h4>Um die Web-Oberfläche des SpeedTouch anzeigen zu können, muss auf dem Browser JavaScript unterstützt und aktiviert werden. <br><br>Aktivieren Sie Skriptsprachen, und aktualisieren Sie den Browser.</h4>
</noscript>
<table>
<tr>
<td>
<table>
<tr>

<td><img></td>
</tr>
<tr>
<td><img></td>
<td><img><br></td>
</tr>
<tr>
<td><a><img></a></td>
</tr>

<tr>
<td><form><span><input>
<strong>de</strong>&nbsp;
<a>en</a>&nbsp;</span></form></td>
</tr>
</table>
</td>
</tr>
<tr>

<td><img><br></td>
</tr>
<tr>
<td>
<script>writeMenu();</script>
</td>
<td>
<table>

<script>writeNavBar();</script>
<tr>
<td>
<table>
<tr>
<td>
<script>pm_write_messages();</script>

<div>
<hr>
<div>
<table>
<tr><td><a><img></a></td>
<td><table><tr><td><span>SpeedTouch</span></td><td></td></tr>
<tr><td><table>
<tr><td><img></td></tr>
<tr><td><img></td><td><a>Informationen</a></td><td></td><td></td></tr>
<tr><td><img></td></tr>
<tr><td></td><td>Produktname:</td><td></td><td>SpeedTouch 5x6</td></tr>
<tr><td><img></td></tr>

<tr><td></td><td>Softwareversion:</td><td></td><td>5.3.9.2</td></tr>
</table></td></tr></table></td></tr></table></div>
<hr>
<div>
<table>
<tr><td><a><img></a></td>
<td><table><tr><td><span>Breitbandverbindung</span></td><td></td></tr>
<tr><td><table>
<tr><td><img></td></tr>
<tr><td><img></td><td><a>Bridge</a>:</td><td></td><td>Verbindung getrennt</td></tr>
<form>

<input>
<input>
<tr><td><img></td></tr>
<tr><td><img></td><td><a>Shared_Internet</a>:</td><td></td><td>Verbindung hergestellt</td><td><input>
</td></tr>
<input>
</form>
</table></td></tr></table></td></tr></table></div>
<hr>
<div>
<table>
<tr><td><a><img></a></td>
<td><table><tr><td><span>Utensilien</span></td><td></td></tr>

<tr><td><table>
<tr><td><img></td></tr>
<tr><td><img></td><td><a>Entfernte Unterstützung</a>:</td><td></td><td>Deaktiviert</td></tr>
<tr><td><img></td></tr>
<tr><td><img></td><td><a>Gemeinsame Nutzung von Spielen und Anwendungen</a></td><td></td><td></td></tr>
<tr><td><img></td></tr>
<tr><td><img></td><td><a>Firewall</a>:</td><td></td><td>Standard</td></tr>
<tr><td><img></td></tr>
<tr><td><img></td><td><a>Elternkontrolle</a></td><td></td><td></td></tr>

</table></td></tr></table></td></tr></table></div>
<hr>
<div>
<table>
<tr><td><a><img></a></td>
<td><table><tr><td><span>Heimnetzwerk</span></td><td></td></tr>
<tr><td><table>
<tr><td><img></td></tr>
<tr><td><img></td><td>Ethernet:</td><td></td><td><a>mich-pc</a></td></tr>
<tr><td><img></td></tr>
<tr><td></td><td></td><td></td><td><a>office-pc</a></td></tr>
<tr><td><img></td></tr>
<tr><td></td><td></td><td></td><td><a>WGR614v7</a></td></tr>

</table></td></tr></table></td></tr></table></div>
<script>generateTasks()</script>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>

</tr>
<tr>
<td><img></td>
</tr>
<tr>
<td><img><br></td>
</tr>
</table>
</body>

</html>

[/html]

Und hier der Quelltext einer Unterseite des Routers, wo man die Verbindung ebenfalls trennen kann:

[html]
<DOCTYPE>
<html>
<head>
<title>SpeedTouch - Shared_Internet</title>
<meta>
<script>var g_navitem = -1;</script>
<script> var g_focus = -1;</script>
<script></script>

<link>
</head>
<body>
<noscript>
<h1>Thomson - SpeedTouch</h1>
<h4>Um die Web-Oberfläche des SpeedTouch anzeigen zu können, muss auf dem Browser JavaScript unterstützt und aktiviert werden. <br><br>Aktivieren Sie Skriptsprachen, und aktualisieren Sie den Browser.</h4>
</noscript>
<table>
<tr>
<td>
<table>
<tr>

<td><img></td>
</tr>
<tr>
<td><img></td>
<td><img><br></td>
</tr>
<tr>
<td><a><img></a></td>
</tr>

<tr>
<td><form><span><input>
<strong>de</strong>&nbsp;
<a>en</a>&nbsp;</span></form></td>
</tr>
</table>
</td>
</tr>
<tr>

<td><img><br></td>
</tr>
<tr>
<td>
<script>writeMenu();</script>
</td>
<td>
<table>

<script>writeNavBar();</script>
<tr>
<td>
<table>
<tr>
<td>
<script>pm_write_messages();</script>

<div>
<form>
<input>
<input>
<hr>
<div>
<table>
<tr><td><img></td>
<td><table><tr><td><span>Shared_Internet</span></td><td><input>
</td></tr>
<tr><td><input>
<br><table><tr><td><img></td><td>
<span>Verbindungsinformationen</span><br>
<table>

<tr><td></td><td></td><td></td><td></td></tr>
<tr><td><img></td></tr>
<tr><td>Betriebszeit:</td><td>0 Tage, 1:55:36</td></tr>
<tr><td><img></td></tr>
<tr><td>Übertragene Daten (Gesendet/Empfangen) [MB/MB]:</td><td>9,93 / 212,86</td></tr>
<tr><td><img></td></tr>
<tr><td>Benutzername:</td><td>4946634000</td></tr>
<tr><td><img></td></tr>
<tr><td>Kennwort:</td><td>********</td></tr>

<tr><td><img></td></tr>
<tr><td>Kennwort speichern:</td><td>Ja</td></tr>
<tr><td><img></td></tr>
<tr><td>IP-Adresse:</td><td>62.47.194.87</td></tr>
<tr><td><img></td></tr>
<tr><td>Primärer DNS:</td><td>195.3.96.67</td></tr>
<tr><td><img></td></tr>
<tr><td>Sekundärer DNS:</td><td>195.3.96.68</td></tr>
</table>

</td></tr></table>
</td></tr></table></td></tr></table></div>
</form>
<script>generateTasks()</script>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>

</td>
</tr>
<tr>
<td><img></td>
</tr>
<tr>
<td><img><br></td>
</tr>
</table>

</body>
</html>
[/html]

Das action-Attribut des Formulars sieht hierbei etwas anders aus.

Und hier noch die komplette util.js:

[html]
// Function to open a window centered
function openWndCentered(newURL, newName, width, height, scroll, resize)
{
var winl = (screen.width - width) / 2;
var wint = (screen.height - height) / 2;
winprops = \'height=\'+height+\',width=\'+width+\',top=\'+wint+\',left=\'+winl+\',scrollbars=\'+scroll+\',resizable=\'+resize;
var win = window.open(newURL, newName, winprops);
if (win)
win.focus();
}

// Function submit a form
function submitForm(theForm, actionNo, flags, primkey, confirmMsg, anchor, eval_code)
{
var VALIDATE = 0x01;
var CONFIRM = 0x02;
var EVAL = 0x04;

if (flags && (flags & CONFIRM))
if (!confirm(confirmMsg)) return;
if (flags && (flags & VALIDATE))
if (!validate(theForm, actionNo)) return;
if (flags && (flags & EVAL) && eval_code)
eval(eval_code);
if (actionNo > 0)
theForm.elements[0].value = actionNo;
if (primkey)
theForm.elements[1].value = primkey;
var customArgs = new String(\"\");
if (g_state[TYPE].length > 0)
{
customArgs += \"name=\"+URLparam_escape(g_state[NAME]);
if (g_state[KEY].length > 0)
customArgs += \"&\" + g_urlArgs[KEY] + \"=\" + g_state[KEY];
}
if (g_state[TID].length > 0)
{
if (customArgs != \"\")
customArgs += \"&\";
customArgs += g_urlArgs[TID] + \"=\" + g_state[TID];
}
theForm.action += constructArgString(customArgs);
if (anchor)
theForm.action += \"#\" + anchor;
theForm.submit();
}

// Define indices in the state array
var NB_STATE_VARS = 12;
var BE = 0; // basic or expert
var CE = 1; // collapsed or expanded
var L0 = 2;
var L1 = 3;
var NAME = 4;
var TID = 5; // task ID
var NM = 6; // don\'t show menu
var NAV = 7;
var KEY = 8;

var HELP = 9;
var ARGS = 10;
var TYPE = 11;

// Global array to store the state
var g_state = new Array(NB_STATE_VARS);
// Initialiaze state array with default values
g_state[BE] = 0; // basic=0, expert=1
g_state[CE] = 1; // collapsed=0, expanded=1
// To be changed to show the home page menu state
g_state[L0] = -1; // top-level menu
g_state[L1] = -1; // submenu
g_state[NAME] = \"\";
g_state[TID] = \"\";
g_state[NM] = 0;
g_state[NAV] = \"\";
g_state[KEY] = \"\";

g_state[HELP] = \"\";
g_state[ARGS] = \"\";
g_state[TYPE] = \"\";


// The names of the url arguments
var NB_URL_ARGS = 9;
var g_urlArgs = new Array(NB_URL_ARGS);
g_urlArgs[BE] = \"be\";
g_urlArgs[CE] = \"ce\";
g_urlArgs[L0] = \"l0\";
g_urlArgs[L1] = \"l1\";
g_urlArgs[NAME] = \"name\";
g_urlArgs[TID] = \"tid\";
g_urlArgs[NM] = \"nm\";
g_urlArgs[NAV] = \"nav\";
g_urlArgs[KEY] = \"key\";

var mtree = new Array(1);
if (0) {
mtree = new Array(2);
document.write(\"<script></script>\");
}
document.write(\"<script></script>\");

var url = new String(location.search);
var argIdx = url.indexOf(\'?\');
if (argIdx != -1)
{
var args = url.substring(argIdx + 1, url.length).split(\"&\");
for (var i = 0; i < args.length; i++)
{
var found = false;
var values = args.split(\"=\");
for (var j = 0; (j <NB_URL_ARGS>= 3)
g_state[TYPE] = args[1];
}

var g_cur_mode = g_state[BE];

// URL parameter unescape
function URLparam_unescape(aParam)
{
var param = new String(aParam);
var result = new String(\"\");

for (var i = 0; i < param.length; i++)
{
if (param.charAt(i) == \'+\')
result += \' \';
else
result += param.charAt(i);
}
return result;
}

// URL parameter escape
function URLparam_escape(aParam)
{
var param = new String(aParam);
var result = new String(\"\");

for (var i = 0; i < param.length; i++)
{
if (param.charAt(i) == \' \')
result += \'+\';
else
result += param.charAt(i);
}
return result;
}

// Switch between basic and expert mode (business products only)
function switchmode(mode)
{
g_cur_mode = mode;
GoAndRemember(\"/\", \'\');
}

// Function to load the given link while preserving the menu state
function GoAndRemember(aLink, customArgs)
{
var l0 = -1;
var l1 = -1;
var link = new String(aLink);
var notFound = true;

if (link.length == 0)
{
// load the page indicated by the state vars
link = new String(getCurrentLink());
link += constructArgString(customArgs);
location.href = link;
}
else if (link == \"/\")
{
g_state[BE] = g_cur_mode;
g_state[L0] = -1;
g_state[L1] = -1;
location.href = link + constructArgString(\"\");
}
else if (link.indexOf(\"javascript:\", 0) != -1)
{
// just execute the javascript code
location.href = link;
}
else
{
// find the menu item that corresponds with the given link
for (var i = 0; (i < mtree.length) && notFound; i++) // mode
{
for (var j = 0; (j < mtree.length) && notFound; j++) // l0
{
if (mtree[j][2] == link)
{
// discard custom arguments
g_state[ARGS] = \"\";
g_state[NAME] = \"\";
g_state[TYPE] = \"\";
g_state[BE] = i;
g_state[L1] = -1;
g_state[L0] = j;
notFound = false;
}
else
{
for (var k = 0; (k < mtree[j][5].length) && notFound; k++) // l1
{
if (mtree[j][5][k][1] == link)
{
// discard custom arguments when we go to another menu item
if (g_state[L1] != k)
{
g_state[ARGS] = \"\";
g_state[NAME] = \"\";
g_state[TYPE] = \"\";
}
g_state[BE] = i;
g_state[L0] = j;
g_state[L1] = k;
notFound = false;
}
else if (i == 0)
{
for (var l = 0; (l < mtree[j][5][k][4].length) && notFound; l++)
{
var tmp = mtree[j][5][k][4][l];
for (var m = 0; (m <tmp> 0)
argString += \"&\" + customArgs;
else if (g_state[ARGS].length > 0)
argString += g_state[ARGS];
return argString;
}

// Function that retrieves the link indicated by the state vars
function getCurrentLink()
{
var link;
if (g_state[L0] == -1)
link = \"/\";
else if (g_state[L1] == -1)
link = mtree[g_state[BE]][g_state[L0]][2];
else
link = mtree[g_state[BE]][g_state[L0]][5][g_state[L1]][1];
return link;
}

function preloadImgs()
{
var imgcnt = 0, imgs;

if (g_state[NM] == 1) return;
for (var i = 0; i < mtree.length; i++)
imgcnt += mtree.length;
imgs = new Array(imgcnt);
imgcnt = 0;
for (var i = 0; i < mtree.length; i++) {
for (var j = 0; j < mtree.length; j++) {
imgs[j+imgcnt] = new Image();
imgs[j+imgcnt].src = \"/images/\" + mtree[j][1] + \"slmn.gif\";
}
imgcnt += mtree[i].length;
}
}

function findlayer(name,doc)
{
var i,layer;
if (doc.layers[name]) return doc.layers[name];
for (i=0;i<doc>0) && ((layer=findlayer(name,layer.document))!=null)) return layer;
}
return null;
}

function getObjByName(name) {
if (document.getElementById)
return document.getElementById(name);
else if (document.all)
return document.all[name];
else if (document.layers)
return findlayer(name, document);
return null;
}

// Modify image when mouse over
function ChangeMenu1Selection(img, filename)
{
var obj1 = getObjByName(img);
if ((obj1 == null) && (document.images[img])) obj1 = document.images[img];
if (obj1) obj1.src = filename;
}

// function to write main menu
function writeMenu()
{
if (g_state[NM] == 1) return;
var spcr = \'<img>\';
var msep1 = (g_state[CE] == 1) ? \'<tr><td>\' + spcr + \'</td><td>\' + spcr + \'</td></tr>\' :
\'<tr><td>\' + spcr + \'</td></tr>\';
var mterm1 = (g_state[CE] == 1) ? \'<tr><td>\' + spcr + \'</td><td>\' + spcr + \'</td></tr>\' :
\'<tr><td>\' + spcr + \'</td></tr><tr>\';
var arrow = (g_state[CE] == 1) ? \'<img>\' :
\'<img>\';

document.write(\'<table><tr>\');
if (g_state[CE]==1)
document.write(\'<td>\'+spcr+\'</td>\');
document.write(\'<td><img></td></tr><tr>\');
if (g_state[CE] == 1) document.write(\'<td>\' + spcr + \'</td><td>\' + spcr + \'</td><td>\' + spcr + \'</td><td>\' + spcr + \'</td>\');
document.write(\'<td><a>\' + arrow + \'</a></td></tr>\');
for (var i = 0; i < mtree[g_state[BE]].length; i++) {
if (mtree[g_state[BE]][i][3]) {
var disp = new String(mtree[g_state[BE]][i][0]);
var sel1 = (i == g_state[L0])?\'Over\':\'\';
var selM = (i == g_state[L0])?\'\':
\'OnMouseOver=\"ChangeMenu1Selection(\\\'Menu1Img\' + i + \'\\\', \\\'/images/\' + mtree[g_state[BE]][i][1] + \'slmn.gif\\\')\"\' +
\'OnMouseOut=\"ChangeMenu1Selection(\\\'Menu1Img\' + i + \'\\\', \\\'/images/\' + mtree[g_state[BE]][i][1] + \'unmn.gif\\\')\"\';
var ikoon = \'<img>\';

var url1 = new String(mtree[g_state[BE]][i][2]);
var addjs1 = (url1.indexOf(\'javascript:\') == -1) ? 1 : 0;
var href1 = \'href=\"\' + (addjs1 ? (\'javascript:GoAndRemember(\\\'\' + url1 + \'\\\',\\\'\\\')\') : url1) + \'\" \';

document.write(msep1);
if (g_state[CE] == 1) { // expanded menu
document.write(
\'<tr><td>\' + spcr + \'</td>\' +
\'<td><a>\' + disp + \'</a></td>\' +
\'<td>\' + spcr + \'</td>\' +
\'<td><a>\' + ikoon + \'</a></td></tr>\');

if (i == g_state[L0]) { // selected, show submenu
document.write(msep1);
for (var j = 0; j </td> 0)
return new Array();
var navbars = mtree[g_state[BE]][g_state[L0]][5][g_state[L1]][4];
for (var i = 0; i </td> 0 && 1)
document.write(\' <td>[ <a>\'+username+\'</a> ]</td>\');
else
document.write(\' <td></td>\');
document.write(\' <td>\');
writeNavRight();
document.write(\' </td>\');
document.write(\' </tr>\');
document.write(\' <tr><td><img><br></td></tr>\');
document.write(\' <tr>\');
document.write(\' <td>\');
writeNavLeft();
document.write(\' </td>\');
document.write(\' </tr>\');
document.write(\' <tr><td><img><br></td></tr>\');
document.write(\' <tr><td><img><br></td></tr>\');
document.write(\' </table>\');
document.write(\' </td>\');
document.write(\' </tr>\');
}

// function to write navigation bar (left-side)
function writeNavLeft()
{
document.write(\'<a>\'+\'POS1\'+\'</a> \');
if (g_state[L0] != -1)
{
var link = new String(mtree[g_state[BE]][g_state[L0]][2]);
if (link.indexOf(\'javascript:\') == -1)
document.write(\'> <a>\' + mtree[g_state[BE]][g_state[L0]][0] + \'</a> \');
else
document.write(\'> <a>\' + mtree[g_state[BE]][g_state[L0]][0] + \'</a> \');
}
if (g_state[L1] != -1)
document.write(\'> <a>\' + mtree[g_state[BE]][g_state[L0]][5][g_state[L1]][0] + \'</a> \');
if (g_state[TID].length > 0)
document.write(\'> <a>\'+tasks[g_state[TID]][1]+\'</a>\');
else if (g_state[NAME].length > 0)
{
var args = new String(g_urlArgs[NAME]+\'=\'+URLparam_escape(g_state[NAME]));
if (g_state[KEY].length > 0)
args += \'&\' + g_urlArgs[KEY] + \'=\' + g_state[KEY];
if (g_state[NAV].length > 0)
args += \'&\' + g_urlArgs[NAV] + \'=\' + g_state[NAV];
document.write(\'> <a>\'+g_state[NAME]+\'</a>\');
}
}

// function to write navigation bar (right-side)
function writeNavRight()
{
if (g_state[BE] == 1)
{
document.write(\'<a>\'+\'Alles speichern\'+\'</a> | \');
document.write(\'<a>\'+\'CLI\'+\'</a> | \');
}
else if ((g_state[L0] != -1) && (g_state[L1] != -1))
{
var bar = getBar();
for (var i = 0; i </em> 0)
{
var args = new String(g_urlArgs[NAME]+\'=\'+URLparam_escape(g_state[NAME]));
if (g_state[KEY].length > 0)
args += \'&\' + g_urlArgs[KEY]+\'=\'+g_state[KEY];
document.write(\'<a>\'+bar[i][0]+\'</a> | \');
}
else
document.write(\'<a>\'+bar[i][0]+\'</a> | \');
}
}
}
document.write(\'<a>\'+\'Hilfe\'+\'</a>\');
}

// Collapse or expand menu
function toggleMenu()
{
g_state[CE] = (g_state[CE] == 0) ? 1 : 0;
GoAndRemember(\"\",\"\");
}

// Set the anchor name to which a click on the help button should go
function setHelpLink(anchor)
{ g_state[HELP] = anchor; }

// Open help for this page
function helpLink()
{
var theUrl = new String(location.pathname);
var helpAnchor;
if (theUrl == \"/\") helpAnchor = \"home\";
else if (theUrl.indexOf(\"/cgi/cli\") != -1)
helpAnchor = \"cli\";
else
{
helpAnchor = new String(\"\");
if (theUrl.indexOf(\"/cgi/\") != -1)
theUrl = theUrl.substring(5, theUrl.length - 1);
if (theUrl.charAt(theUrl.length - 1) == \"/\")
theUrl = theUrl.substring(0, theUrl.length - 2);
for (var i = 0; i < theUrl.length; i++)
if (theUrl.charAt(i) == \"/\")
helpAnchor += \"_\";
else
helpAnchor += theUrl.charAt(i);
}
var helpUrl;
if (g_state[BE]==1 || helpAnchor==\"cli\")
helpUrl = \"/e\";
else
helpUrl = \"/b\";
helpUrl += \"_index.htm?anchor=\"+helpAnchor;
openWndCentered(helpUrl, \'Help\', 715, 550, \'yes\', \'yes\');
}

// Sets the language
function setLanguage(langCode)
{ document.langSelect.elements[0].value = langCode; }

// Save the configuration using the given CGI link
function saveConfig(link)
{
var url = new String(link);
url += constructArgString(\"\");
location.href = url;
}

// Filters out the tasks from the given list for which the user has no permission
function filterList(list)
{
var result = new Array;
var idx = 0;
for (var i = 0; i <list> 0))
return;
if (g_state[L1] == -1)
tasknamelist = mtree[g_state[BE]][g_state[L0]][4];
else if (mtree[g_state[BE]][g_state[L0]][5][g_state[L1]][4].length == 0)
tasknamelist = mtree[g_state[BE]][g_state[L0]][5][g_state[L1]][3];
else
{
var bar = getBar();
found = false;
for (var i = 0; !found && (i < bar.length); i++)
{
if ((bar[i][2]) && (location.pathname == bar[i][1]))
{
found = true;
tasknamelist = bar[i][3];
}
}
}
if (!found) return;
var resultList = filterList(tasknamelist);
if (resultList.length != 0)
{
document.write(\"<hr><div>\\n\");
document.write(\"<table>\\n\");
document.write(\"<tr><td><img></td><td><h1>\");
document.write(\'Aufgabe auswählen...\'+\"</h1></td></tr>\\n\");
for (var i = 0; i </td>\"+tasks[resultList[i]][0]+\"</a></td></tr>\\n\");
}
document.write(\"</table></div>\\n\");
}
}

// Form Validation code (fv)
//--------------------------
function fv(c) {
this.id = fv.checks.length;
fv.checks[fv.checks.length] = this;
if (!c) c = {};
var dc = fv.defaults;
for (var p in dc)
this[p] = c[p] ? c[p] : dc[p];
}

function fv_findformelem(name,form) {
if (!name) name=this.name;
if (!form) form=this.form;
var cf = eval(form);
for(var nEl=0;nEl<cf.elements.length;nEl++) {
var el = cf.elements[nEl];
if (el.name == name) return el;
}
return getObjByName(name);
}
fv.prototype.findformelem=fv_findformelem;

function fv_checkNum(x) {
var v=\'0123456789\';
var vh=\'0123456789aAbBcCdDeEfF\';
if (!x) x=this.x;
for (var i=0; i < this.x.length; i++) {
if (this.num == \'h\')
{
if (vh.indexOf(x.charAt(i)) < 0)
this.err=\'Dieses Feld sollte eine Hexadezimalzahl enthalten.\';
}
else
{
if (v.indexOf(x.charAt(i)) < 0)
this.err=\'Dieses Feld sollte einen numerischen Wert enthalten.\';
}
}
return (this.err?0:1);
}
fv.prototype.checkNum=fv_checkNum;

function nip(x) {
if (!x) return 0;
var n=0, p=x.split(\'.\');
if (p.length!=4) return 0;
for (var i=0;i<4;i++)
n=n*256+p[i]/1;
return n;
}

function fv_checkIp(no0, noFF) {
var all0=1, allFF=1, x=this.x;
var gen=\'Dies ist keine gültige IP-Adresse. Das gültige Format ist n.n.n.n (mit 0<=n<=255).\';
var p = x.split(\'.\');
if (p.length!=4) this.err=gen;
for (var i=0;i<4>3||!this.checkNum(p[i]))) this.err=gen;
if (!this.err) {
var np=p[i]/1;
if (np>255) this.err=gen;
if (np!=0) all0=0;
if (np!=255) allFF=0;
}
}
if (!this.err && (all0 && no0) || (allFF && noFF)) this.err=\'Die IP-Adresse ist für dieses Feld nicht gültig.\';
}
fv.prototype.checkIp=fv_checkIp;

function fv_checkRange() {
var x=parseInt(this.x,10), b=parseInt(this.gte,10), e=parseInt(this.lte,10);
if ((x<b>e))
this.err=\'Der Wert sollte im folgenden Bereich liegen:\'+this.gte+\'-\'+this.lte+\'.\';
}
fv.prototype.checkRange=fv_checkRange;

function fv_checkReq(el,form) {
if (el.type && el.type==\'radio\') {
var ctrls=new Array();
for (var i=0;i<form.elements.length;i++)
if (form.elements[i].name == el.name)
ctrls[ctrls.length] = form.elements[i];
for (var i=0;i<ctrls.length;i++)
if (ctrls[i].checked) return 0;
this.err=\'Auswahl erforderlich.\';
} else if (el.type && el.type==\'file\') {
if (el.value) return 0;
this.err=\'Keine Datei ausgewählt.\';
} else if (!el.value || !el.value.length)
this.err=\'Dieses Feld erfordert eine Eingabe.\';
if (this.err) return 1;
else return 0;
}
fv.prototype.checkReq=fv_checkReq;

function fv_checkSpc() {
if (this.x.indexOf(\' \')!=-1) this.err=\'In diesem Feld sind keine Leerzeichen zulässig.\';
}
fv.prototype.checkSpc=fv_checkSpc;

function fv_isAlfaNumeric() {
regExpr = /^[\\w]*$/;
if (this.x.search(regExpr)) this.err=\'Verwenden Sie in diesem Feld alphanumerische Zeichen.\';
}
fv.prototype.checkAlfaNumeric=fv_isAlfaNumeric;

function fv_checkIpExpr() {
var txt=\'var i=\'+nip(this.x);
if (this.i1){e1=this.findformelem(this.i1);if(e1)txt+=\',i1=\'+nip(e1.value);}
if (this.i2){e2=this.findformelem(this.i2);if(e2)txt+=\',i2=\'+nip(e2.value);}
if (this.i3){e3=this.findformelem(this.i3);if(e3)txt+=\',i3=\'+nip(e3.value);}
txt+=\';(\'+this.ipexpr+\')\';
if (!eval(txt)) this.err=this.msg;
}
fv.prototype.checkIpExpr=fv_checkIpExpr;

function fv_checkNumExpr() {
var txt=\'var n=\'+this.x;
if (this.n1){e1=this.findformelem(this.n1);if(e1)txt+=\',n1=\'+(e1.value?e1.value:\'null\');}
if (this.n2){e2=this.findformelem(this.n2);if(e2)txt+=\',n2=\'+(e2.value?e2.value:\'null\');}
if (this.n3){e3=this.findformelem(this.n3);if(e3)txt+=\',n3=\'+(e3.value?e3.value:\'null\');}
txt+=\';\'+this.numexpr;
if (!eval(txt)) this.err=this.msg;
}
fv.prototype.checkNumExpr=fv_checkNumExpr;

function fv_checkStrExpr() {
var txt=\'var s=\\\'\'+this.x+\'\\\'\';
if (this.s1){e1=this.findformelem(this.s1);if(e1)txt+=\',s1=\\\'\'+e1.value+\'\\\'\';}
if (this.s2){e2=this.findformelem(this.s2);if(e2)txt+=\',s2=\\\'\'+e2.value+\'\\\'\';}
if (this.s3){e3=this.findformelem(this.s3);if(e3)txt+=\',s3=\\\'\'+e3.value+\'\\\'\';}
txt+=\';(\'+this.strexpr+\')\';
if (!eval(txt)) this.err=this.msg;
}
fv.prototype.checkStrExpr=fv_checkStrExpr;

function fv_minLen() {
var str=new String(this.x);
if (str.length <this> this.maxlen)
this.err=\'Maximale Länge für dieses Feld: \'+this.maxlen+\'\\nCurrent length: \'+str.length;
}
fv.prototype.maxLen=fv_maxLen;

function fv_dnsName() {
var ok=\'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-\';
var nm=new String(this.x);
for (var i=0;i<nm.length;i++)
if (ok.indexOf(nm.charAt(i))==-1) {
this.err=\'Wert darf nur aus Buchstaben, Zahlen und Bindestrichen bestehen.\';
return;
}
}
fv.prototype.dnsName=fv_dnsName;

function fv_confExtension(){
var idx = this.x.lastIndexOf(\'.\');
var ext1 = \'ini\';
var ext2 = \'def\';
var ext3 = \'tpl\';
var ext4 = \'lng\';
var ext;

idx++;
if(this.x.charAt(idx) == ext1.charAt(0)){
ext = ext1;
}
else if(this.x.charAt(idx) == ext2.charAt(0)){
ext = ext2;
}
else if(this.x.charAt(idx) == ext3.charAt(0)){
ext = ext3;
}
else if(this.x.charAt(idx) == ext4.charAt(0)){
ext = ext4;
}
else{
this.err=\'Gültige Konfigurationsdateien haben die Erweiterung .DEF oder .INI.\';
return;
}
for(var i=1; i<3; i++){
if(this.x.charAt(idx+i)!=ext.charAt(i)){
this.err=\'Gültige Konfigurationsdateien haben die Erweiterung .DEF oder .INI.\';
return;
}
}
}
fv.prototype.checkConfigExt=fv_confExtension;

function fv_checkSet(form) {
var cnt = 0;
var str = new String(this.set);
var setTags = str.split(\",\");
for (var i=0; i<setTags.length; i++)
{
var setEl = fv_findformelem(setTags[i],form);
if (!setEl) return;
cnt += this.checkReq(setEl,form);
this.err=null;
}
if ((cnt==setTags.length)||(cnt==0))
this.err=null;
else
this.err=\'Füllen Sie alle Felder oder keines der Felder aus.\';
}
fv.prototype.checkSet=fv_checkSet;

function fv_verify(form) {
var el = this.findformelem();
this.err = null;
this.x = null;
if (el)
this.x = el.value;
else if (this.opt != \'\')
return 1;
else {
alert(\'Fehler beim Suchvorgang: \'+this.form+\'.\'+this.name);
return 0;
}
if (this.set)
this.checkSet(form);
else if (this.req) this.checkReq(el, form);
if (this.x) {
if (!this.err && this.dnsname) this.dnsName();
if (!this.err && this.minlen) this.minLen();
if (!this.err && this.maxlen) this.maxLen();
if (!this.err && this.num) this.checkNum();
if (!this.err && this.lte && this.gte) this.checkRange();
if (!this.err && this.ip) this.checkIp((this.ip.indexOf(\'!0\')!=-1), (this.ip.indexOf(\'!FF\')!=-1));
if (!this.err && this.nospc) this.checkSpc();
if (!this.err && this.alfanum) this.checkAlfaNumeric();
if (!this.err && this.confext) this.checkConfigExt();
if (!this.err && this.numexpr && this.msg) this.checkNumExpr();
if (!this.err && this.ipexpr && this.msg) this.checkIpExpr();
if (!this.err && this.strexpr && this.msg) this.checkStrExpr();
}

if (this.err) {
alert(\'Validierung fehlgeschlagen (\'+this.text+\')\\n\\n\'+this.err+\'\\n\\n\' + \'Korrigieren Sie den Wert, und versuchen Sie es erneut.\');
el.focus();
return 0;
}
return 1;
}
fv.prototype.verify=fv_verify;

function validate(form, actionNo) {
var ck, err = 0;
for (var i = 0; i < fv.checks.length; i++)
{
ck = fv.checks[i];
cf = eval(ck.form);
var exclPassed = true;
var excl = new String(ck.excl);
if (excl != \'\')
{
var exclTags = excl.split(\";\");
for (var j = 0; (j < exclTags.length) && exclPassed; j++)
if (exclTags[j] == actionNo)
exclPassed = false;
}
if (!exclPassed) continue;
var inclPassed = false;
var incl = new String(ck.incl);
if (incl == \'\')
inclPassed = true;
else
{
var inclTags = incl.split(\";\");
for (var j = 0; (j < inclTags.length) && !inclPassed; j++)
if (inclTags[j] == actionNo)
inclPassed = true;
}
if (!inclPassed) continue;
if ((cf == form) && !ck.verify(form))
return 0;
}
return 1;
}
fv.defaults={form:\'\',name:\'\',text:\'\',lte:\'\',gte:\'\',ip:\'\',req:\'\',num:\'\',minlen:\'\',
maxlen:\'\',nospc:\'\',alfanum:\'\',msg:\'\',numexpr:\'\',ipexpr:\'\',strexpr:\'\',incl:\'\',excl:\'\',
opt:\'\',n1:\'\',n2:\'\',n3:\'\',i1:\'\',i2:\'\',i3:\'\',s1:\'\',s2:\'\',s3:\'\',dnsname:\'\',confext:\'\',set:\'\'};
fv.checks=new Array();

// Progress bar code (pb)
//-----------------------

function pb(c) {
this.id = pb.cnt;
pb.bars[pb.cnt++] = this;
if (!c) c = {};
var df = pb.defaults;
for (var p in df)
this[p] = c[p] ? c[p] : df[p];

this.ns4=(document.layers)?true:false;
this.insert();
if (this.go) this.start();
}
pb.defaults = {
h:20, // bar height
w:400, // bar width
wt:10, // wait time seconds
bc:\'#AAAAAA\', // border color
lc:\'#00335b\', // loaded color
uc:\'#DDDDDD\',// unloaded color
pos:0,
PBdone:0,
onDone:\'\',
go:0
}
pb.ups=10; // # updates/second
pb.tid=null;
pb.cnt=0;
pb.bars=new Array();

function pb_insert() {
var w=this.w, h=this.h, id=this.id, txt=\'\';
if(this.ns4){
var vis = this.go? \'show\' : \'hide\';
txt+=\'<table><tr><td>\';
txt+=\'<ilayer>\';
txt+=\'<layer></layer>\';
txt+=\'<layer></layer>\';
txt+=\'<layer></layer>\';
txt+=\'</ilayer>\';
txt+=\'</td></tr></table>\';
}
else{
txt+=\'<div>\';
txt+=\'<div></div>\';
txt+=\'<div></div>\';
txt+=\'</div>&nbsp;\';
}
document.write(txt);

this.PBdone=getObjByName(\'PBdone\'+id);
this.resizeEl();
}
pb.prototype.insert=pb_insert;

function pb_start(wt) {
if(wt) this.wt = wt;
var PBouter=getObjByName(\'PBouter\'+this.id);
if (PBouter) {
this.go=1;
this.pos=0;
if(this.ns4) PBouter.visibility=\"show\";
else PBouter.style.visibility=\"visible\";
}
if (!pb.tid)
pb.tid=setInterval(\'pb_update()\',1000/pb.ups);
}
pb.prototype.start=pb_start;

function pb_config(w, h) {
if (w) this.w=w;
if (h) this.h=h;
}
pb.prototype.config=pb_config;

function pb_resizeEl() {
var e=this.PBdone, r=this.pos*(this.w-2)/(this.wt*pb.ups);
if(this.ns4) e.clip.right=r;
else e.style.width=r+\'px\';
}
pb.prototype.resizeEl=pb_resizeEl;

function pb_incrCount() {
this.pos++;
if(this.pos<0>=(this.wt*pb.ups)){
this.pos=this.wt*pb.ups;
this.go=0;
if (this.onDone)
eval(this.onDone);
else
this.start();
}
this.resizeEl();
}
pb.prototype.incrCount=pb_incrCount;

function pb_update() {
var any=0;
for (var i=0;i<pb.bars.length;i++) {
if (pb.bars[i].go==1) {
any=1;
pb.bars[i].incrCount();
}
}
if (!any) {
clearInterval(pb.tid);
pb.tid=0;
}
}

// Web Page Messages (pm)
//-----------------------
pm.cnt = 0;
pm.msgs = new Array();
pm.icons = new Array();
pm.icons[\'error\'] = \'ll00__md.gif\';
pm.icons[\'warning\'] = \'ll04__md.gif\';
pm.icons[\'info\'] = \'ll07__md.gif\';

function pm(type, msg) {
this.id = pm.cnt;
pm.msgs[pm.cnt++] = this;
this.type = type;
this.msg = msg;
}

function pm_write() {
document.write(\'<tr><td><img></td>\\n\');
document.write(\'<td>\' + this.msg + \'</td></tr>\\n\');
}
pm.prototype.write = pm_write;

function pm_write_type(t) {
for (var i=0;i<pm.msgs.length;i++)
if (pm.msgs[i].type==t)
pm.msgs[i].write();
}

function pm_write_messages() {
if ((pm.msgs.length == 0) || (g_state[NM] == 1))
return;
document.write(\'<table><tr>\\n\');
document.write(\'<td><img></td>\\n\');
pm_write_type(\'error\');
pm_write_type(\'warning\');
pm_write_type(\'info\');
document.write(\'<tr><td><img></td></tr></table>\');
}

function noenter() {
return !(window.event && window.event.keyCode == 13); }

function setFocus() {
if( g_focus !=-1)
{
var obj=getObjByName(g_focus);
if (obj) obj.focus();
}
}


[/html]
Zuletzt geändert von qotsa am 19.04.2007, 14:43, insgesamt 2-mal geändert.
Benutzeravatar
mirko
Beiträge: 23077
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

das reicht immernoch nicht, weil das Script keine direkten Feldnamen verwendet, sondern z.B. form-Element 1. Jetzt ist noch der HTML-Code zwischen <form> und </form> notwendig. Diesen in eine Codebox setzen, also nicht einfach hier reinkopieren.
qotsa
Beiträge: 9
Registriert: 17.04.2007, 23:45

Beitrag von qotsa »

Danke für deine Hilfe!

Hier ist die Funktion. Das ganze war in der externen Datei util.js
[html]
// Function submit a form
function submitForm(theForm, actionNo, flags, primkey, confirmMsg, anchor, eval_code)
{
var VALIDATE = 0x01;
var CONFIRM = 0x02;
var EVAL = 0x04;

if (flags && (flags & CONFIRM))
if (!confirm(confirmMsg)) return;
if (flags && (flags & VALIDATE))
if (!validate(theForm, actionNo)) return;
if (flags && (flags & EVAL) && eval_code)
eval(eval_code);
if (actionNo > 0)
theForm.elements[0].value = actionNo;
if (primkey)
theForm.elements[1].value = primkey;
var customArgs = new String(\"\");
if (g_state[TYPE].length > 0)
{
customArgs += \"name=\"+URLparam_escape(g_state[NAME]);
if (g_state[KEY].length > 0)
customArgs += \"&\" + g_urlArgs[KEY] + \"=\" + g_state[KEY];
}
if (g_state[TID].length > 0)
{
if (customArgs != \"\")
customArgs += \"&\";
customArgs += g_urlArgs[TID] + \"=\" + g_state[TID];
}
theForm.action += constructArgString(customArgs);
if (anchor)
theForm.action += \"#\" + anchor;
theForm.submit();
}
[/html]
Ich habe bewusst nicht den ganzen Quelltext gepostet, da der Beitrag sonst so unübersichtlich wird. Vielleicht könntet ihr ja in Zukunft mal Spoiler ([spoiler][/spoiler]) ins Forum itegrieren.

greets
Zuletzt geändert von qotsa am 19.04.2007, 14:34, insgesamt 1-mal geändert.
Benutzeravatar
mirko
Beiträge: 23077
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Man muss den JavaScript-Aufruf in einen normalen HTTP-Aufruf umsetzen, also die Parameter zusammensetzen. Die Angaben von dir reicht in diesem Fall aber nicht, da du die Funktion submitForm() nicht mit in den Beitrag kopiert hast.
Anfangen tut der Aufruf mit
<POST>/cgi/b/is/? und dann die hidden-Felder, die wohl in der JavaScript-Funktion submitForm() gesetzt werden.
qotsa
Beiträge: 9
Registriert: 17.04.2007, 23:45

Beitrag von qotsa »

Hallo,

Ich wollte meinen Router (SpeedTouch 546v6) mit RouterControl lauffähig machen. Leider kann man die Verbindung am Webinterface nur trennen, wenn JavaScript aktivert ist. Der Button zum Trennen der Verbindung löst also ein Script aus. Leider weiß ich nicht, wie ich das in RC-Editor eingeben muss.

Hier der Quelltext für den Button, der die Verbindung trennt:

<input>

Hier das Forumlar:

<form>

Wenn ich JS im Browser deaktiviere, bewirkt der Button überhaupt nichts. Die Verbindungstrennung scheint also nur über JS möglich zu sein. Leider habe ich keine Ahnung, in welcher Syntax ich JS im RC-Editor eingeben muss.

Danke im Vorraus!
Zuletzt geändert von qotsa am 17.04.2007, 23:55, insgesamt 1-mal geändert.
Antworten