Login Error Page falsche URL

Gesperrt
speedmaster
Beiträge: 59
Registriert: Mi 18. Apr 2007, 18:43
Kontaktdaten:

Login Error Page falsche URL

Beitrag von speedmaster » Mo 16. Jun 2008, 17:45

Hallo zusammen,

ich bin am verzweifeln. Habe auch über die Siche keine passende Antwort auf mein Problem gefunden. Deshalb hier meine Frage.

Ich habe beim Mandanten folgendes hinterlegt:

login_error_page -> idcatart -> 50

Wenn ich mich nun im Frontend mit korrekten Daten anmelde funzt alles wie es soll.

Jedoch wenn ich mich mit falschen Benutzedaten anmelde, laufe ich auf eine Fehlerseite 404.

Die URL lautet dann:
http://www.meineseite.de/_cms/seite/htt ... dcatart=50

Diese sollte aber lauten:
http://www.meineseite.de/_cms/seite/fro ... dcatart=50

Ich verwende die Version 4.6.23 mit ModRewrite

Wo könnte den hier der Fehler liegen. :cry: Über einen Tipp wäre ich sehr dankbar. :)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 27. Jun 2008, 05:05

tipp leider keinen..
nach 4.6.x verschoben...
*** make your own tools (wishlist :: thx)

gassi
Beiträge: 46
Registriert: Mi 7. Dez 2005, 22:25
Kontaktdaten:

Beitrag von gassi » Mo 8. Sep 2008, 23:15

Hi,
gab es dafür jetzt schon ne lösung - hab nämlich genau dasselbe Problem....?!
Wäre dankbar was zu erfahren....

Soeren
Beiträge: 33
Registriert: Mi 29. Dez 2004, 17:29
Wohnort: Bremen
Kontaktdaten:

solved->

Beitrag von Soeren » Sa 4. Okt 2008, 09:27

Scheint nur mit aktiviertem rewrite vorzukommen. Schein ein fehler im

./cms/front_crcloginform.inc.php

zu sein. Dort habe ich den Code

Code: Alles auswählen

$sUrl = $cfgClient[$client]["path"]["htmlpath"]."front_content.php";
in folgenden ersetzt

Code: Alles auswählen

$sUrl = "front_content.php";
Somit zieht er 'nur' noch die front Content und nicht mehr den ganzen html path doppelt, dann zieht er auch die errorcat.

gruß aus dem Norden
----
Contenido 4.4.5, Contenido 4.6

Soeren
Beiträge: 33
Registriert: Mi 29. Dez 2004, 17:29
Wohnort: Bremen
Kontaktdaten:

doch noch nicht ganz....

Beitrag von Soeren » Sa 4. Okt 2008, 10:01

Dann ist er auf meine normale Fehlersiete glaufen, was ich ja aber nciht ganz so wollte.

Scheint definitv was am modrewrite zu sein, daher hab ich das für die Fehlerpage ausgeschaltet. Bitte den Code im
./cms/front_crcloginform.inc.php

austauschen
ALT

Code: Alles auswählen

$sUrl = $cfgClient[$client]["path"]["htmlpath"]."front_content.php";

// edit by stese - modrewrite
$strErrorUrl = $sUrl;

if ($err_catart!='') {
	$strErrorUrl.="?idcatart=".$err_catart;
}
if ($err_art!='' && $err_cat!='') {
	$strErrorUrl.="?idcat=".$err_cat."&idart=".$err_art;
}
if ($err_cat!='') {
	$strErrorUrl.="?idcat=".$err_cat;
}
if ($err_art!='') {
	$strErrorUrl.="?idart=".$err_art;
}

if ( $cfg['mod_rewrite']['use'] == 1 ) {
   if ( preg_match ( "/^front_content\.php(.*|.+?)/i", $strErrorUrl, $arr_hits ) == 1 ) {
   	$strErrorUrl = ModRewrite::build_new_url($arr_hits[1]);
   }
}
header("Location: ".$cfgClient[$client]["path"]["htmlpath"].$strErrorUrl);

NEU

Code: Alles auswählen

//$sUrl = $cfgClient[$client]["path"]["htmlpath"]."front_content.php";
$sUrl = "front_content.php";

// edit by stese - modrewrite
$strErrorUrl = $sUrl;

if ($err_catart!='') {
	$strErrorUrl.="?idcatart=".$err_catart;
}
if ($err_art!='' && $err_cat!='') {
	$strErrorUrl.="?idcat=".$err_cat."&idart=".$err_art;
}
//if ($err_cat!='') {
//	$strErrorUrl.="?idcat=".$err_cat;
//}
//if ($err_art!='') {
//	$strErrorUrl.="?idart=".$err_art;
//}

if ( $cfg['mod_rewrite']['use'] == 2 ) {
   if ( preg_match ( "/^front_content\.php(.*|.+?)/i", $strErrorUrl, $arr_hits ) == 1 ) {
   	$strErrorUrl = ModRewrite::build_new_url($arr_hits[1]);
   }
}
header("Location: ".$cfgClient[$client]["path"]["htmlpath"].$strErrorUrl);

Wichtig ist dann natürlich, dass in der Config.php das $cfg['mod_rewrite']['use'] niemals auf 2 steht, sondern auf 1 oder 0. Somit umgeht er dann die Fehlersietenauflösung ganz. Ist denke ich da auch nicht so schlimm und ich hab eben keine lust den Fehler zu suchen...

Weiterhin müssen natürlich in den Mandanteneinstellungen
Type: login_error_page
Name: idcat
Wert: ~~~NUMMER~~~

Type: login_error_page
Name: idcatart
Wert: ~~~NUMMER~~~

Type: login_error_page
Name: idart
Wert: ~~~NUMMER~~~

gesetzt sein, gelle!

Gruß

Soeren
----
Contenido 4.4.5, Contenido 4.6

Soeren
Beiträge: 33
Registriert: Mi 29. Dez 2004, 17:29
Wohnort: Bremen
Kontaktdaten:

Vergesst meinen geistigen Dünschiss von eben

Beitrag von Soeren » Sa 4. Okt 2008, 10:15

Ist halt früh am Morgen.

Bitte einfach den Code in der
./cms/front_crcloginform.inc.php

durch folgenden ersetzen, dann klappts endgültig mit allen finessen und auch mit aktiviertem Rewrite.

Code: Alles auswählen

<?php

/******************************************
* File      :   main.loginform.php
* Project   :   Contenido
* Descr     :   Login form
*
*
* Author    :   Jan Lengowski
* Created   :   21.01.2003
* Modified  :   21.01.2003
* Modified  :   29.09.2005, Andreas Lindner
*
* © four for business AG
******************************************/

global $cfg, $idcat, $idart, $idcatart, $lang, $client, $username;

// edit by stese - include modrewrite functions
cInclude("classes","class.modrewrite.php");

$err_catart	= trim(getEffectiveSetting("login_error_page", "idcatart", ""));
$err_cat	= trim(getEffectiveSetting("login_error_page", "idcat", ""));
$err_art	= trim(getEffectiveSetting("login_error_page", "idart", ""));

//$sUrl = $cfgClient[$client]["path"]["htmlpath"]."front_content.php";
$sUrl = "front_content.php";

// edit by stese - modrewrite
$strErrorUrl = $sUrl;

if ($err_catart!='') {
	$strErrorUrl.="?idcatart=".$err_catart;
}
if ($err_art!='' && $err_cat!='') {
	$strErrorUrl.="?idcat=".$err_cat."&idart=".$err_art;
}
if ($err_cat!='') {
	$strErrorUrl.="?idcat=".$err_cat;
}
if ($err_art!='') {
	$strErrorUrl.="?idart=".$err_art;
}

if ( $cfg['mod_rewrite']['use'] == 1 ) {
   if ( preg_match ( "/^front_content\.php(.*|.+?)/i", $strErrorUrl, $arr_hits ) == 1 ) {
   	$strErrorUrl = ModRewrite::build_new_url($arr_hits[1]);
   }
}
//header("Location: ".$cfgClient[$client]["path"]["htmlpath"].$strErrorUrl);
header("Location: ".$strErrorUrl);


if (isset($_GET["return"]) || isset($_POST["return"])){
	$aLocator = Array();

	if ($idcat > 0) {
		$aLocator[] = "idcat=$idcat";
	}
	if ($idart > 0) {
		$aLocator[] = "idart=$idart";
	}

	if (isset($_POST["username"]) || isset($_GET["username"])){
		$aLocator[]= "wrongpass=1";
	}

	$strErrorUrl = $sUrl . "?" . implode("&", $aLocator);
	if ( $cfg['mod_rewrite']['use'] == 1 ) {
   	if ( preg_match ( "/^front_content\.php(.*|.+?)/i", $strErrorUrl, $arr_hits ) == 1 ) {
   		$strErrorUrl = ModRewrite::build_new_url($arr_hits[1]);
	   }
	}

	header ("Location: " . $cfgClient[$client]["path"]["htmlpath"]. $strErrorUrl);
}

// set form action
$strFromAction = $sUrl;
if ( $cfg['mod_rewrite']['use'] == 1 ) {
   if ( preg_match ( "/^front_content\.php(.*|.+?)/i", $strFromAction, $arr_hits ) == 1 ) {
      $strFromAction = ModRewrite::build_new_url($arr_hits[1]);
   }
}
// end edit
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
    <title>:: :: :: :: Contenido Login</title>
    <link rel="stylesheet" type="text/css" href="../contenido/styles/contenido.css" />

    <script language="javascript">
	if (top != self)
	{
		top.location.href = self.location.href;
	}
	</script>
</head>
<body>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
    <!--
    <tr height="70" style="height: 70px">
        <td style="background-image:url(images/background.jpg); border-bottom: 1px solid #000000">
            <img src="images/conlogo.gif">
        </td>
    </tr>-->
    <tr height="400">
        <td align="center" valign="middle">
            <form name="login" method="post" action="<?php /* edit by stese - modrewrite */ print $strFromAction; ?>">
                <table cellspacing="0" cellpadding="3" border="0" style="background-color: <?php echo $cfg['color']['table_light'] ?>; border: 1px solid <?php echo $cfg['color']['table_border'] ?>">
                    <tr>
                        <td colspan="2" class="textw_medium" style="background-color: <?php echo $cfg["color"]["table_header"] ?>; border-bottom: 1px solid <?php echo $cfg["color"]["table_border"] ?>">Login</td>
                    </tr>
                    <tr>
                        <td colspan="2"></td>
                    </tr>

                    <?php if ( isset($username) ) { ?>
                    <tr>
                        <td colspan="2" class="text_error">Invalid Username or Password!</td>
                    </tr>
                    <?php } else { ?>
                    <tr>
                        <td colspan="2" class="text_error">&nbsp;</td>
                    </tr>
                    <?php } ?>

                    <tr>
                        <td colspan="2"></td>
                    </tr>
                    <tr>
                        <td class="text_medium">Username:</td>
                        <td><input type="text" class="text_medium" name="username" size="20" maxlength="32" value="<?php echo ( isset($this->auth["uname"]) ) ? $this->auth["uname"] : ""  ?>"></td>
                    </tr>
                    <tr>
                        <td class="text_medium">Password:</td>
                        <td><input type="password" class="text_medium" name="password" size="20" maxlength="32">
                            <input type="hidden" name="vaction" value="login">
                            <input type="hidden" name="formtimestamp" value="<?php echo time(); ?>">
							<input type="hidden" name="idcat" value="<?php echo $idcat; ?>">
                            </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="right">
                            <input type="image" title="Login" alt="Login" src="../contenido/images/but_ok.gif">
                        </td>
                    </tr>
                </table>
            </form>
        </td>
    </tr>
</table>

<script type="text/javascript">
    if (document.login.username.value == '') {
        document.login.username.focus();

    } else {
        document.login.password.focus();

    }
</script>

</body>
</html>
----
Contenido 4.4.5, Contenido 4.6

gassi
Beiträge: 46
Registriert: Mi 7. Dez 2005, 22:25
Kontaktdaten:

Beitrag von gassi » Fr 31. Okt 2008, 12:44

Vielen dank,
hat prima funktioniert......
Jetzt läuft das endlich ordentlich..

Gesperrt