Seite 1 von 1
Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 15:43
von sarronsarron
Hallo,
kann mir jemand sagen wo ich eine Fehlermeldung z.B. "Falscher User oder Passwort" einbauen kann bei einem fehlerhaften Login.
Dank im Voraus
sarronsareron
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 16:09
von IngoL
Hallo,
erst Seite mit Fehlermeldung erstellen, idart des Artikels merken und in den Mandanteneinstellungen einen Eintrag hinzufügen:
Typ-----------------Name------Wert
login_error_page-------idart-------"Die idart von deiner Fehlerseite"
Gruß Ingo
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 16:15
von sarronsarron
Danke für die schnelle Antwort.
Ich würde aber leiber die gleiche Seite (wie der Logion) benutzen und eine Fehlermeldung dabei ausgeben.
Da weis ich nicht wie ich das realisieren kann.
Gruß
sarronsarron
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 16:26
von IngoL
Dann überprüfe doch:
a) Ob anmeldedaten übergeben wurden
b) Ein Login vorhanden ist
z.B. mit:
Code: Alles auswählen
if( isset($_REQUEST['username'])
&& isset($_REQUEST['password'])
&& $auth->nobody)
Gruß Ingo
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 16:33
von sarronsarron
Hallo,
da funktioniert nicht im Modul Login_Form da die action ja in das aufzurfende Script verzweigt. Dort wird dann irgendwo geprüft und auf Login_error_page verweisen.
Wo das aber genau geprüft wird weis ich nicht.
gruß
sarronsarron
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 16:46
von Spider IT
Hallo,
dann mach doch die login-seite zur login_error_page
Ob
funktioniert weiß ich nicht, in den Contenido-Modulen steht immer
Gruß
René
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 16:52
von sarronsarron
Hab ich schon gemacht. Ich weis aber nicht wie oder was ich bei falschem Login abfragen kann damit ich eine Fehlermeldung ausgeben kann.
guß
sarronsarron
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 17:05
von IngoL
Vielleicht reden wir aneinander vorbei
Also immer dann, wenn es in einem Request eine Variable username übermittelt wird versucht das $auth Object diesen Benutzernamen zu übernehemen, und stimmt dann noch das Passwort tut es das auch. Sonst ist der Benutzer 'nobody'. Diese Überprüfung findet auf jeder Seite statt. Es ist sozusagen egal auf welche Seite das form verweist in dem die Anmeldedaten eingegeben werden.
Bei einem erfolgreichen Login wird dann die Seite aufgerufen auf das das Form verwiesen hat, wenn es zu einem Fehler kommt wird die login_error_page aufgerufen.
Wenn ich dich richtig verstanden habe ist dein Anmeldeformular auf Seite A und verweist auf einen einen Artikel B, welcher bei positiven Login aufgerufen werden soll. Bei einem Fehlerhaften Login soll aber wieder das Formular mit einer Fehlermeldung angezeigt werden. Daher muß die login_error_page dein Loginformular sein, und das Formular muß so gestaltet werden, dass es erkennt das ein Fehlerhafte Login stattgefunden hat.
Das Modul LoginForm finde ich persönlich ein bisschen unübersichtlich, daher verwende ich etwas wie:
Code: Alles auswählen
<?php
$goidart = [idart des Artikels der nach dem Login aufgerufen werden soll]
$error = '';
if(isset($_REQUEST['username'] && $auth->auth["uid"] == "nobody"){
$error = mi18n("Da stimte was nicht mit den Anmeldedaten");
}
?>
<form action="front_content.php?idart=<?=$goidart?>" method="POST">
<?=$error?>
<table>
<tr>
<th>Benutzername:</th><td><input type="text" name="username"></td>
</tr><tr>
<th>Passwort:</th><td><input type="password" name="password"></td>
</table>
</form>
Gruß Ingo
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 17:06
von Spider IT
Im Login-Modul steht schon
Danach kannst du dann abfragen (wie IngoL schon schrieb)
Code: Alles auswählen
if ((isset($_REQUEST['username'])) && (isset($_REQUEST['password']))) {
Wenn das zutrifft, war es eine fehlerhafte Anmeldung.
Also:
Code: Alles auswählen
if ($auth->auth['uid'] == 'nobody') {
if ((isset($_REQUEST['username'])) && (isset($_REQUEST['password']))) {
# Fehlerhafte Anmeldung
...
}
...
Gruß
René
Re: Fehlermeldung bei falschem Login
Verfasst: Fr 9. Mär 2012, 17:09
von IngoL
Spider IT hat geschrieben:...
Ob
funktioniert weiß ich nicht, in den Contenido-Modulen steht immer
...
Wenn man sich print_r($auth) ausgeben lässt sieht es immer so aus als ob es funktioniert, wenn man es dann verwendet ist die
Variante wirklich besser
Gruß Ingo
Re: Fehlermeldung bei falschem Login
Verfasst: Sa 10. Mär 2012, 09:46
von sarronsarron
Halloo,
habs eingabaut, funktioniert aber nicht. Es kommt keine Fehlermeldung.
if ($auth->auth["uid"] == "nobody") {
if ((isset($_REQUEST['username'])) && (isset($_REQUEST['password']))) {
echo "Falsche Anmeldung";
}
gruß sarronsarron
Re: Fehlermeldung bei falschem Login
Verfasst: Sa 10. Mär 2012, 10:20
von Spider IT
Stimmt, habs gerade getestet.
Anscheinend werden die Daten bei der Weiterleitung nicht mitgegeben.
Mir ist da eine andere Lösung in den Sinn gekommen:
login_error_page woanders ablegen, darin per Javascript auf die Login-Seite weiterleiten, aber mit Parameter
error=1:
Code: Alles auswählen
<script type="text/javascript">
<![CDATA[
document.location.href = 'front_content.php?idart=XX&error=1';
//]]>
</script>
ACHTUNG! XX durch die idart ersetzen!
Auf der Seite noch einen Hinweis, für den Fall, dass Javascript deaktiviert ist.
Im Login-Modul dann diesen Code anstelle des vorher eingefügten:
Code: Alles auswählen
if (isset($_GET['error'])) {
# Fehlerhafte Anmeldung
echo 'Benutzername und/oder Passwort falsch';
}
Letzteres habe ich getestet, das funktioniert:
http://www.webseiten-und-so.de/Webseite ... index.html.
Gruß
René
Re: Fehlermeldung bei falschem Login
Verfasst: Sa 10. Mär 2012, 10:31
von sarronsarron
Hallo,
denke das ich die Lösung gefunden habe.
In cms/front_crcloginform.inc.php vor
header('Location: ' . $sErrorUrl);
folgendes einbauen: $sErrorUrl .= "&login=badlogin";
dann kann man $login im Modul Login_From abfragen
if ($auth->auth["uid"] == "nobody") {
if ($_GET['login']=="badlogin") {
echo "Falsche Anmeldung";
}
bei mir funktioniert es.
gruß sarronsarron