VF DSL 468x60

Loginbox per TypoScript (mit kb_md5feuser und newloginbox)

Submitting your vote...
Rating: 4.0 of 5. 9 vote(s).
Click the rating bar to rate this item.

Dieses Beispiel demonstriert die Möglichkeit der Erstellung einer Loginbox per TypoScript. Diese Loginbox funktioniert mit md5 Passwörtern (ext: kb_md5feuser) und der Extension newloginbox.

 

# prüfe, ob bereits eingeloggt (ein feuser muß zu einer Gruppe gehören)
[usergroup=*]

# Abmeldeformular mit Benutzernamen
lib.login = COA_INT
lib.login {
  10 = TEXT
  10.wrap = <span id="logoutUName">|</span>
   
  20 = TEXT
  20.typolink.parameter = {$plugin.tx_newloginbox.loginUID}
  20.typolink.returnLast = url
  20.wrap = <form action="|" method="post">
   
  30 = COA
  30 {
    5 = TEXT
    5.wrap = <input type="submit" id="logout" value="|" />
     
    10 = TEXT
    10.value = <input type="hidden" name="logintype" value="logout" />
    20 = TEXT
    20.value = <input type="hidden" name="redirect_url" value="" />
    30 = TEXT
    30.value = </form>
  }
}

# ansonsten stellen wir ein Anmeldeformular zur Verfügung
[else]

# wichtig, da wir an den Challenge-Wert von kb_md5feuser nur über ein PHP-Script kommen
includeLibs.md5fepw = fileadmin/scripts/md5fepw.php
lib.login = COA_INT
lib.login {
  10 = TEXT
  10.typolink.parameter = {$plugin.tx_newloginbox.loginUID}
  10.typolink.returnLast = url
  10.wrap = <form action="|" method="post" onsubmit="superchallenge_pass(this); return true;">
   
  # form
  20 = COA
  20 {
    10 = TEXT
    10.value = Login
    10.wrap = <input type="text" name="user" onclick="this.value=''" value="|" /> <br />
    20 = TEXT
    20.wrap = <input type="password" name="pass" onclick="this.value=''" value="|" />
     
    30 = COA
    30 {
      10 = TEXT
      10.value = <input type="hidden" name="logintype" value="login" />
      20 = TEXT
      20.value = {$plugin.tx_newloginbox.storageUID}
      20.wrap = <input type="hidden" name="pid" value="|" />
       
      # Aufruf des PHP-Scriptes
      25 = USER
      25.userFunc = user_md5fepw->md5Challenge
       
      30 = TEXT
      30.value = <button type="submit"><img src="fileadmin/templates/res/pictures/go.gif" alt="login" /></button>
      40 = TEXT
      40.value = </form>
    }
  }
}
[usergroup]

# Inhalte für Abmeldeformular nach Sprache einbinden (in unserem Beispiel Englisch und Deutsch)
[usergroup=*] AND [globalVar = GP:L = {$langUID_EN}]
lib.login.10.value = Hello <!--###USERNAME###-->
lib.login.30.5.value = press to logout
[else]
lib.login.10.value = Hallo <!--###USERNAME###-->
lib.login.30.5.value = zum abmelden best&auml;tigen
[global]

# ermöglicht einbinden nur auf spezieller Seite und dessen Unterseiten
[PIDinRootline={$siteIntern}]
lib.login.if.isTrue = 1

# globale Ermöglichung des Login, falls Konstante auf 1 gesetzt wird
[else]
lib.login.if.isTrue = {$activateLogin}
[global]

 

Hier das benötigte PHP-Script. Inhalt des PHP-Scriptes (Funktion kopiert von kb_md5feuser und leicht modifiziert)

 


<?php
class user_md5fepw {
function 
md5Challenge($content$conf)
{
$js '
function superchallenge_pass(form) {
var pass = form.pass.value;
if (pass) {
form.pass.value = MD5(form.user.value + ":" + MD5(pass) + ":" + form.challenge.value);
return true;
} else
return false;
}'
;

$GLOBALS['TSFE']->JSCode .= $js;
$GLOBALS['TSFE']->additionalHeaderData['tx_kbmd5fepw_newloginbox'] = '<script language="JavaScript" type="text/javascript" src="typo3/md5.js"></script>';
$chal_val md5(time().getmypid());
$res $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_kbmd5fepw_challenge', array('challenge' => $chal_val'tstamp' => time()));
return 
'<input type="hidden" name="challenge" value="'.$chal_val.'">';
}
}
?> 

 

 

Dieses Snippet wurde von Stefan Galinski eingesendet



Comments


Thomas, 23-07-06 23:38:
Hallo, wollte das Skript gerade mal testen, nur was kommt hier rein bzw. was muss hier gesetzt werden: {$plugin.tx_newloginbox.loginUID}
Stefan, 24-07-06 12:10:
Hi Thomas,

$plugin.tx_newloginbox.storageUID --> ID des SysFolders mit FE-Benutzern

$plugin.tx_newloginbox.loginUID --> ID der Seite mit dem Plugin newloginbox

BTW: Das Eingabefeld für Kommentare ist definitiv eine Nummer zu klein geraten...
Thomas, 24-07-06 22:46:
Hallo,

das mit den Constanten hab ich hinbekommen, danke. Nun hab ich noch das Problem das wenn ich mich als neuer Benutzer registrier, ich mich nicht einloggen kann. Wenn ich mir das Passwort über die Email Funktion zuschicken lass, und ein neues Passwort bekomme geht es wieder ;(

ps: gibt es eigentlich irgendwelche xhtml konformen varianten der fe_admin_fe_users.tmpl ?
Stefan, 25-07-06 11:13:
Ich kann dir nur sr_feuser_register von Stanislas Rolland empfehlen. Ich schrieb für diese Extension vor etlicher Zeit ein CSS-basiertes und XHTMl konformes Template. Du kannst es nutzen, indem du unter Templates das CSS-tmpl wählst. Mit diesem Plugin funktioniert auch die Benutzeregistrierung ohne Probleme. Das bei dir vorliegende Problem scheint zu sein, dass das Password nicht als MD5-Wert abgespeichert wird. Dies geschieht erst mit der Passwort vergessen-Funktion der newloginbox. Also kurz gesagt: wechsel die Extension für die Benutzeregistration (sr_feuser_register ist sowieso mittlerweile Standard).
Thomas, 26-07-06 12:49:
Hallo Stefan,

habe mittlerweile auf diese Extension gewechselt, was konformen code angeht, kommt man hier um welten schneller zum Ziel. Nur leider hab ich nach wie vor noch das Problem mit dem Passwort ;( Folgende Extensions sind installiert, kb_md5fepw 0.4.0 | sr_feuser_register 2.5.0 und die ver ist v4. Vielleicht noch irgend eine Idee wo der Hund begraben sein könnte?

Gruß Thomas
Thomas, 26-07-06 14:37:
Hallo Stefan,

habe mittlerweile auf diese Extension gewechselt, was konformen code angeht, kommt man hier um welten schneller zum Ziel. Nur leider hab ich nach wie vor noch das Problem mit dem Passwort ;( Folgende Extensions sind installiert, kb_md5fepw 0.4.0 | sr_feuser_register 2.5.0 und die ver ist v4. Vielleicht noch irgend eine Idee wo der Hund begraben sein könnte?

Gruß Thomas
Stefan, 26-07-06 18:45:
Schau doch mal in die Datenbank, ob die Passwörter als plaintext oder md5-Wert beim registrieren gespeichert werden. Ich muß allerdings zugeben, dass ich momentan keine Benutzerregistration implementiert habe. Frage doch am besten einfach mal auf einer Mailingliste nach. Evtl. kennt jemand dort das Problem...
Stefan, 23-08-06 15:15:
Falls noch nicht gemacht in sr_feuser_register die Einstellung "useMd5Password" auf den Wert "1" setzen. Das bewirkt die Speicherung der Nutzer mit MD5-Passwort.
Thomas, 29-08-06 18:35:
Hi,
ich habe relativ lange mit dem Ansatz gekämpft, bis er jetzt anscheinend endlich läuft. Prüf mal, ob ich auf einen Bug gestossen bin. Ich musste das PHP-Skript ändern:

$res = $GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_kbmd5fepw_challenge', array('challenge' => $chal_val, 'tstamp' => time()));
$content.='<input type="hidden" name="challenge" value="'.$chal_val.'">';
return $content;

Ich glaube der Fehler im Skript war, dass der übergebene Content nicht wieder durchgereicht wurde.
Thomas, 30-08-06 19:11:
Hallo,

erstmal vielen Dank für das Feedback! Bei mir läuft nun alles bestens, das einzigste was leider immer noch nicht funktioniert ist, wenn der Benutzername ein Umlaut wie z.B. ü, ä ... enthält. Dann ist kein Login möglich.

Add comment

* - required field

*



*
*

Top 10 Updates

Erstellen eines einfachen Infocenters mit TYPO3  geändert am  17-Nov-2009 11:11:22
Funktionierendes Section Menu mit TemplaVoila geändert am  05-May-2009 10:42:40
"Nicht im Menü" in Sitemap anzeigen geändert am  05-May-2009 10:12:24
Implementation des DHTML Menüs von brainjar.com  geändert am  01-Feb-2009 13:01:36
Beispiel DHTML Menü geändert am  01-Feb-2009 12:47:38
Anzeigebeispiel für dynamische Bild Masken geändert am  16-Dec-2008 15:11:25
Links geändert am  11-Dec-2008 10:12:33
Nützliche Links geändert am  11-Dec-2008 10:05:56
Transparente PNG's in IE5/6 ohne JavaScript geändert am  04-Oct-2008 12:28:14
Typoscript Eigenschaften mit stdWrap erweitern geändert am  13-Jun-2008 14:16:12

Latest comments

11-Mar-2010 07:52:35
Tom schrieb: Klasse, genau das was ich gebraucht habe. Mit einer Einschränkung... ... wie kann ich jetzt den...
Vertikales grafisches Menu (GMENU)
10-Mar-2010 15:42:51
siteway.de schrieb: Perfekt. Nach genau sowas hab ich gesucht! Danke.
Jedem Mailformular Feld eine eigene CSS Klassen zuweißen
05-Mar-2010 10:15:12
andi schrieb: Und wie funktioniert das Ganze bei Seiten mit TemplaVoila?
Template abhängig von Spalteninhalt
English
Suche: