Problem mit Fehlerdokument
Problem mit Fehlerdokument
Ich habe ein problem mit dem Fehlerdokument:
Wenn ich eine nicht existierende Seite aufrufe (nicht vorhandene idcatart aufrufe) kommt bei mir immer die Fehlerseite die ich bei der Mandanteneinstellung mit login_error_page->idcatart definiert habe.
Diese seite sollte ja aber nur bei Loginprobleme kommen oder?
Ich bei den Mandanteneinstellungen login_error_page->idcatart definiert die auf die korrekte Seite verweist, sowie in der Mandanteneinstellung Fehlerseiten-Kategorie und Fehlerseiten-Artikel definitiert. Dies scheint aber keine funktion zu haben.
Hat jemand das gleiche problem? tips?
Danek
Wenn ich eine nicht existierende Seite aufrufe (nicht vorhandene idcatart aufrufe) kommt bei mir immer die Fehlerseite die ich bei der Mandanteneinstellung mit login_error_page->idcatart definiert habe.
Diese seite sollte ja aber nur bei Loginprobleme kommen oder?
Ich bei den Mandanteneinstellungen login_error_page->idcatart definiert die auf die korrekte Seite verweist, sowie in der Mandanteneinstellung Fehlerseiten-Kategorie und Fehlerseiten-Artikel definitiert. Dies scheint aber keine funktion zu haben.
Hat jemand das gleiche problem? tips?
Danek
ja, sollte sie...Diese seite sollte ja aber nur bei Loginprobleme kommen oder?
wie sieht die exakte url aus, wenn du falsch weitergeleitet wirst (sprich seite wird nicht gefunden) ?
und wie sieht die url aus bei einem fehlerhaften login ?
(die sind sicher nicht ident)
contenido version ?
*** make your own tools (wishlist :: thx)
emergence,
das Problem kenne und habe ich auch.
Wenn ich bewußt eine idart falsch angebe um auf die Fehlerseite zu kommen (Mustermandant vordefiniert) wird prinzipiell die Login-Error-Seite angezeigt oder die Startseite der Hauptkategorie.
Die eigentliche Fehlerseite habe ich erst 1 oder 2x zu Gesicht bekommen.
(Kann es aber nicht reproduzieren)
Ich meine HerrB hat mal was dazu geschrieben warum es nicht geht.
das Problem kenne und habe ich auch.
Wenn ich bewußt eine idart falsch angebe um auf die Fehlerseite zu kommen (Mustermandant vordefiniert) wird prinzipiell die Login-Error-Seite angezeigt oder die Startseite der Hauptkategorie.
Die eigentliche Fehlerseite habe ich erst 1 oder 2x zu Gesicht bekommen.
(Kann es aber nicht reproduzieren)
Ich meine HerrB hat mal was dazu geschrieben warum es nicht geht.
was passiert wenn ihr keine
login_error_page->idcatart
definiert habt ? kommt dann ne login ausforderung ?
das andere auf die startseite -> ist meiner meinung nach okay
login_error_page->idcatart
definiert habt ? kommt dann ne login ausforderung ?
das andere auf die startseite -> ist meiner meinung nach okay
*** make your own tools (wishlist :: thx)
Die url sieht in beiden fällen gleich aus:emergence hat geschrieben: wie sieht die exakte url aus, wenn du falsch weitergeleitet wirst (sprich seite wird nicht gefunden) ?
und wie sieht die url aus bei einem fehlerhaften login ?
http://www.meinepage.de/cms/front_conte ... dcatart=23
wobei idcatart 23 meine login Fehler Seite ist
Wenn ich die Fehlerseiteseite direkt angebe (korrekte id) dann kommt die Seite auch.
Richtig sollte doch bei falschaufruf ( ungültige idart von hand angeben) doch ein url in der art wie
http://www.meinepage.de/cms/front_conte ... =1&error=1
zurückkommen oder? so ist es jedenfalls bei anderen contendio installationen die ich habe...
emergence hat geschrieben:was passiert wenn ihr keine
login_error_page->idcatart
definiert habt ? kommt dann ne login ausforderung ?
das andere auf die startseite -> ist meiner meinung nach okay
wenn ich den login_error_page->idcatart schlüssel lösche kommt bei Loginfehler und bei ungültiger Seite beides mal die Startseite.
verschoben...
der loginmechanismus gehört da etwas entwanzt...
der loginmechanismus gehört da etwas entwanzt...
*** make your own tools (wishlist :: thx)
Ich wollte gerade schreiben das ich es morgen mal durchteste,
da habe ich gesehen das du den Beitrag verschoben hast.
Das gefällt mir
Hiermit bin ich jedoch nicht so ganz einverstanden:
Wenn ich von einer allgemeinen Seite aus einen Fehler mache oder provoziere (durch Eingabe einer ungültigen/nicht vorhandenen ID)
müßte die definierte Fehlerseite (so wie im Mustermandant definiert), aufgerufen werden und nicht die Startseite der Hauptkategorie.
Zumindest würde das dem allgemeinen Standard einer serverseitigen Fehlerseite entsprechen.
da habe ich gesehen das du den Beitrag verschoben hast.
Das gefällt mir

Hiermit bin ich jedoch nicht so ganz einverstanden:
Wenn ich von einer allgemeinen Seite aus einen Fehler mache oder provoziere (durch Eingabe einer ungültigen/nicht vorhandenen ID)
müßte die definierte Fehlerseite (so wie im Mustermandant definiert), aufgerufen werden und nicht die Startseite der Hauptkategorie.
Zumindest würde das dem allgemeinen Standard einer serverseitigen Fehlerseite entsprechen.
wosch hat geschrieben:Ich wollte gerade schreiben das ich es morgen mal durchteste,
da habe ich gesehen das du den Beitrag verschoben hast.
Das gefällt mir![]()
Hiermit bin ich jedoch nicht so ganz einverstanden:
Wenn ich von einer allgemeinen Seite aus einen Fehler mache oder provoziere (durch Eingabe einer ungültigen/nicht vorhandenen ID)
müßte die definierte Fehlerseite (so wie im Mustermandant definiert), aufgerufen werden und nicht die Startseite der Hauptkategorie.
Zumindest würde das dem allgemeinen Standard einer serverseitigen Fehlerseite entsprechen.
Ich sehe das auch so:
Das Fehlerdokument muss immer dann kommen wenn eine Seite mit nicht gültigem id kommt. Als ungültige ID sehe ich auch ein Aufruf der "ungültig" erklärt wird weil eine Berechtigung zu der Seite Fehlt (Geschütze Seite und nicht eingeloggt).
Die Login Fehlerseite sollte wirklich nur bei einem missglückten Loginversuch erscheinen.
Oder verstehe ich das ganze falsch?
Gruss
Remco
der code aus der front_content.php der überarbeitet werden müsste...
Code: Alles auswählen
/* 1... */
if (isset ($username))
{
$auth->login_if(true);
}
/* 2... */
if (isset ($logout))
{
$auth->logout(true);
$auth->unauth(true);
$auth->auth["uname"] = "nobody";
}
/* 3... */
// Fehlerseite
$errsite = "Location: front_content.php?client=$client&idcat=".$errsite_idcat[$client]."&idart=".$errsite_idart[$client]."&lang=$lang&error=1";
/* 4... */
/* Check if category is public */
$sql = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$idcat."' AND idlang='".$lang."'";
$db->query($sql);
$db->next_record();
$public = $db->f("public");
if ($public == 0)
{
if ($auth->auth["uid"] == "nobody")
{
$sql = "SELECT user_id, value FROM ".$cfg["tab"]["user_prop"]." WHERE type='frontend' and name='allowed_ip'";
$db->query($sql);
while ($db->next_record())
{
$user_id = $db->f("user_id");
$range = urldecode($db->f("value"));
$slash = strpos($range, "/");
if ($slash == false)
{
$netmask = "255.255.255.255";
$network = $range;
}
else
{
$network = substr($range, 0, $slash);
$netmask = substr($range, $slash +1, strlen($range) - $slash -1);
}
if (IP_match($network, $netmask, $_SERVER["REMOTE_ADDR"]))
{
$sql = "SELECT idright
FROM ".$cfg["tab"]["rights"]." AS A,
".$cfg["tab"]["actions"]." AS B,
".$cfg["tab"]["area"]." AS C
WHERE B.name = 'front_allow' AND C.name = 'str' AND A.user_id = '".$user_id."' AND A.idcat = '$idcat'
AND A.idarea = C.idarea AND B.idaction = A.idaction";
$db2 = new DB_Contenido;
$db2->query($sql);
if ($db2->num_rows() > 0)
{
$auth->auth["uid"] = $user_id;
$validated = 1;
}
}
}
if ($validated != 1)
{
$allow = false;
$iterator = $_cecRegistry->getIterator("Contenido.Frontend.CategoryAccess");
while ($chainEntry = $iterator->next())
{
$value = $chainEntry->execute($lang, $idcat, $auth->auth["uid"]);
if ($value === true)
{
$allow = true;
break;
}
}
$auth->login_if(!$allow);
}
}
else
{
$allow = false;
$iterator = $_cecRegistry->getIterator("Contenido.Frontend.CategoryAccess");
while ($chainEntry = $iterator->next())
{
$value = $chainEntry->execute($lang, $idcat, $auth->auth["uid"]);
if ($value === true)
{
$allow = true;
break;
}
}
if (!$allow)
{
header($errsite);
}
}
}
/* 5... */
function IP_match($network, $mask, $ip)
{
bcscale(3);
$ip_long = ip2long($ip);
$mask_long = ip2long($network);
#
# Convert mask to divider
#
if (ereg("^[0-9]+$", $mask))
{
/// 212.50.13.0/27 style mask (Cisco style)
$divider = bcpow(2, (32 - $mask));
}
else
{
/// 212.50.13.0/255.255.255.0 style mask
$xmask = ip2long($mask);
if ($xmask < 0)
$xmask = bcadd(bcpow(2, 32), $xmask);
$divider = bcsub(bcpow(2, 32), $xmask);
}
#
# Test is IP within specified mask
#
if (floor(bcdiv($ip_long, $divider)) == floor(bcdiv($mask_long, $divider)))
{
# match - this IP is within specified mask
return true;
}
else
{
# fail - this IP is NOT within specified mask
return false;
}
}
*** make your own tools (wishlist :: thx)