<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://fbb.just4test.de/extern.php?action=feed&amp;tid=4516&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Informationen für CMS/made simple / [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
		<link>http://www.cmsmadesimple.de/forum/viewtopic.php?id=4516</link>
		<description><![CDATA[Die aktuellsten Beiträge in [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren.]]></description>
		<lastBuildDate>Tue, 11 Aug 2015 08:50:47 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35979#p35979</link>
			<description><![CDATA[<p>Hallo NaN,</p><p>1000 Dank! Die Zusatzvariable hat das Problem mit den zwei Login-Formularen gelöst! Es funktioniert nun einwandfrei, soweit ich das sehe.<br />Nochmals vielen Dank für die tatkräftige Unterstützung!</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Tue, 11 Aug 2015 08:50:47 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35979#p35979</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35950#p35950</link>
			<description><![CDATA[<p>Das mit dem Schönheitsfehler kann ich mir höchstens so erklären, dass die Login-Funktion, die vom UDT aus ausgeführt wird, automatisch das Login-Formular anzeigt, wenn das Passwort nicht stimmt. Dadurch hast Du das Formular zweimal drin. Einmal durch den UDT und einmal durch den Aufruf des FEU-Moduls im Seiten-Template.</p><p>Das könnte man evtl. mit einer Variable abfangen, die vom UDT befüllt wird, sobald die Login-Funktion ausgeführt wird.</p><p>Also im UDT steht ja unten:</p><div class="codebox"><pre><code>	...
	# 4. login
	$feu-&gt;DoAction(&#039;do_login&#039;, $id, $params, $params[&#039;returnid&#039;]);
}</code></pre></div><p>Da einfach noch diese Zeile hinzufügen:</p><div class="codebox"><pre><code>	...
	# 4. login
	$feu-&gt;DoAction(&#039;do_login&#039;, $id, $params, $params[&#039;returnid&#039;]);

	$smarty-&gt;assign(&#039;feu_login&#039;, true);
}</code></pre></div><p>Dann kannst Du im Seiten-Template vor dem FEU-Aufruf diese Variable so abfragen:</p><div class="codebox"><pre><code>{pin_kontrolle}
{if !isset($feu_login)}
	{FrontEndUsers}
{/if}</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Fri, 07 Aug 2015 18:41:41 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35950#p35950</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35949#p35949</link>
			<description><![CDATA[<p>Hurra! Es funktioniert prinzipiell.<br />Hab jetzt ne weile rumprobiert...</p><p>Erstmal ist garnichts passiert. Keine Fehlermeldung, einfach bei &quot;Submit&quot; auf die Startseite gesprungen, ohne einzuloggen.</p><p>Das </p><div class="codebox"><pre><code>&lt;form action=&quot;{$smarty.server.PHP_SELF}&quot; &gt;</code></pre></div><p>funktioniert nicht. Habe dann im HTML-Code gesehen dass für action=&quot;/index.php&quot; ausgegeben wurde.</p><p>Ich hab jetzt einfach mal den aktuellen Pfad von Hand eingetragen. Damit klappts!<br />Einloggen klappt nun nurnoch mit zusätzlicher PIN-Eingabe.</p><p>Ein Schönheitsfehler ist irgendwo noch drin. Wenn die PIN stimmt aber das Passwort falsch ist wird unter das bestehende Eingabeformular, das mit Werten gefüllt bleibt ein weiteres leeres darunter gesetzt.<br />Woran kann das liegen?</p><p>Aber es läuft! 1000 Dank für die großartige Unterstützung!</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Fri, 07 Aug 2015 14:43:32 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35949#p35949</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35938#p35938</link>
			<description><![CDATA[<div class="quotebox"><cite>bd0 schrieb:</cite><blockquote><div><p>Wegen der Smarty &lt;-&gt; PHP Sache</p><p>hat dann der ursprüngliche Code</p><div class="codebox"><pre><code>[== PHP ==]
if(!$uid = $feu-&gt;GetUserID($params[&#039;feu_input_username&#039;]))</code></pre></div><p>noch seine Gültigkeit?</p></div></blockquote></div><p>Ja.<br />Im prinzip steht da nichts weiter als das:</p><div class="codebox"><pre><code># Userid anhand des im Login-Formular eingegebenen Usernamens ermitteln:
$uid = $feu-&gt;GetUserID($params[&#039;feu_input_username&#039;]);

# wenn keine Userid zum Usernamen gefunden werden kann:
if(!$uid) ...</code></pre></div><p>Das ganze hab ich nur in einer Zeile zusammengefasst.</p><div class="quotebox"><blockquote><div><p>D.h. die Änderungen an das Smarty-Ausgabe haben keinen Effekt für den PHP-Aufruf, richtig?</p></div></blockquote></div><p>Ja.<br />Mit Smarty allein kannst Du nichts <em>ändern</em>.<br />Es ist eigentlich primär dazu gedacht, Dinge <em>auszugeben</em>.<br />Für komplexere Sachen bist Du auf PHP-Scripte angewiesen, die Du zwar von Smarty aus in Form von Plugins etc. <em>aufrufen</em> kannst, aber auf die Funktionen innerhalb dieser PHP-Scripte hast Du von Smarty aus meist keinen Zugriff.</p><p>Um z.B. ein Login von FEU anzustoßen, muss eine Modul-Interne Funktion des FEU-Moduls ausgeführt werden. <br />Und auf die Hast Du eben nur über PHP Zugriff.<br />(Naja, <em>im Prinzip</em> könnte man das vielleicht auch rein in Smarty machen, aber das wird für Dich nicht einfacher <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/wink.png" alt="wink" /> Es sind trotzdem PHP-Funktionen die Du da aufrufst. Und das sind nicht die, die in der Modul-Hilfe stehen.)</p><div class="quotebox"><blockquote><div><p>Aus Smarty-Ebene komm ich eigentlich immer einigermassen zurecht. Bei PHP wirds dann völlig diffus <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/hmm.png" alt="hmm" /></p></div></blockquote></div><p>Macht nichts.<br />Die beiden sind sich eigentlich sehr ähnlich.<br />Smarty <em><strong>ist</strong></em> PHP.<br />Smarty ist nur etwas einfacher gehalten, weil es eben nicht auf Ebene der Ausführung komplexer Funktionen sondern auf der Ebene der Anzeige ausgelegt ist. Eine Art &quot;Design-Sprache&quot;. Hier und da ein paar Platzhalter mit geschweiften Klammern im ansonsten simplen HTML-Code. Aber hinter diesen Platzhaltern verbirgt sich dann auch nichts weiter als PHP-Code. </p><p>Was Smarty am Ende macht, ist - vereinfacht ausgedrückt - das gesamte Template in PHP-Code umzuwandeln und im Cache als PHP-Datei zu speichern, die dann einfach ausgeführt wird. Mit jeder Zeile Smarty schreibst Du also indirekt PHP-Code.<br />Daher ergibt es auch nicht viel Sinn, den Login von Smarty aus anstoßen zu wollen, weil das doppelte Arbeit bedeuten würde. PHP-Code in Smarty zu übersetzen, nur damit am Ende wieder PHP-Code daraus gemacht wird ...&#160; <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/roll.png" alt="roll" /></p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Thu, 06 Aug 2015 10:03:33 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35938#p35938</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35936#p35936</link>
			<description><![CDATA[<p>Hallo NaN,</p><p>danke für dein ausführliches Feedback. Hab zwar immer noch Fragezeichen, aber der Schleier lüftet sich ein wenig...</p><p>Wegen der Smarty &lt;-&gt; PHP Sache</p><p>hat dann der ursprüngliche Code</p><div class="codebox"><pre><code>[== PHP ==]
if(!$uid = $feu-&gt;GetUserID($params[&#039;feu_input_username&#039;]))</code></pre></div><p>noch seine Gültigkeit? <br />D.h. die Änderungen an das Smarty-Ausgabe haben keinen Effekt für den PHP-Aufruf, richtig?<br />Auf Smarty-Ebene komm ich eigentlich immer einigermassen zurecht. Bei PHP wirds dann völlig diffus <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/hmm.png" alt="hmm" /></p><p>Ich werde mich heute Nachmittag nochmal daran versuchen.<br />Weiss noch nicht ob es bis ans Ziel reichen wird, aber wir werden sehen <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/smile.png" alt="smile" /></p><p>Vielen dank erstmal für die tolle Unterstützung!</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Thu, 06 Aug 2015 08:11:46 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35936#p35936</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35935#p35935</link>
			<description><![CDATA[<div class="quotebox"><blockquote><div><p>was genau macht {$startform} was macht {$endform}?</p></div></blockquote></div><p>{$startform} gibt lediglich den Beginn des Formulars aus:</p><div class="codebox"><pre><code>&lt;form action=&quot;url zur aktuellen Seite&quot; method=&quot;post&quot; ... etc. &gt;</code></pre></div><p>Und zusätzlich noch ein paar versteckte input-Felder damit a) CMSms weiß, dass es eine Modulaktion ist und b) damit das Modul weiß, welche Aktion.</p><p>Und {$endform} macht nichts weiter als das Formular mit &lt;/form&gt; zu schließen.</p><p>Simples HTML halt.</p><p>Wenn Du statt {$formstart} den Beginn des Formulars selber aufbaust (also ohne diese versteckten Inputfelder), kann CMSms damit nichts anfangen - wohl aber Dein UDT.</p><div class="quotebox"><blockquote><div><div class="codebox"><pre><code>&lt;form action=&quot;{$smarty.server.PHP_SELF}&quot; ... &gt;</code></pre></div><p>wofür ist das, bzw. was wäre ...?</p></div></blockquote></div><p>Na das wäre stellvertretend für {$formstart}.<br />{$smarty.server.PHP_SELF} ist die aktuelle URL.<br />An diese soll das Formular gesendet werden.<br />Schau doch einfach mal im Frontend im HTML-Code wie das Login-Formular am Ende aufgebaut ist.<br />Den &lt;form&gt;-Tag kopierst Du einfach ins Template und passt die URL beim Attribut &quot;action&quot; an.<br />Näheres zum Thema Formluare findest Du z.B. <a href="http://wiki.selfhtml.org/wiki/HTML/Formulare/Form" rel="nofollow">hier</a>.</p><p>Füge nach &lt;form&gt; mal noch ein verstecktes Feld mit der Modul-ID hinzu:</p><div class="codebox"><pre><code>&lt;input type=&quot;hidden&quot; value=&quot;{$actionid}&quot; name=&quot;feu_action_id&quot; /&gt;</code></pre></div><p> </p><div class="quotebox"><blockquote><div><p>Ich habe das PIN-Feld in der &quot;Anmeldungsvorlage&quot; von FrontendUser hinzugefügt.<br />Dort habe ich bereits den Umschalter per $page_alias eingebaut.<br />[...]<br />Ist das soweit richtig oder muss das Formular ganz anders neu aufgebaut werden?</p></div></blockquote></div><p>Sieht soweit gut aus.<br />Bis auf den UDT-Aufruf.<br />Der gehört ins <em>Seiten</em>template. Dort wo Du das FrontEndUsers-Modul mit dem Login-Formular aufrufst. Und zwar direkt <em>davor</em>. Im Login-Template ist es bereits zu spät.</p><p>Im Login-Template kannst Du z.B. so Fehler abfangen und eine Meldung ausgeben:</p><div class="codebox"><pre><code>{if $page_alias == &quot;extendedLogin&quot;}

    { * Fehlermeldungen aus dem UDT abfragen: * }
    {if isset($login_error_msg_user)}

        &lt;p class=&quot;error&quot;&gt;{$login_error_msg_user}&lt;/p&gt;

    {/if}

    {if isset($login_error_msg_pin)}

        &lt;p class=&quot;error&quot;&gt;{$login_error_msg_pin}&lt;/p&gt;

    {/if}

    &lt;input type=&quot;email&quot; id=&quot;feu_username&quot; name=&quot;{$fldname_username}&quot; value=&quot;{$username}&quot; size=&quot;20&quot; maxlength=&quot;20&quot; required/&gt;

    &lt;input type=&quot;password&quot; id=&quot;feu_password&quot; name=&quot;{$fldname_password}&quot; value=&quot;{$password}&quot; size=&quot;20&quot; maxlength=&quot;20&quot; required/&gt;


    { * zusätzliches PIN-feld * }
    &lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;{$actionid}feu_pin&quot; size=&quot;4&quot; maxlength=&quot;4&quot; required/&gt;

{/if}</code></pre></div><p> </p><div class="quotebox"><blockquote><div><p>nun zum UDT von Nan:<br />Ich habe es mal ein wenig zerpflückt.<br />Der erste Teil. Muss ich hier irgendwas verändern oder kann das so bleiben?</p></div></blockquote></div><p>Ich hatte das zum Teil aus dem CMSms-Core kopiert. Es geht darum, herauszufinden, ob beim Laden der Seite mit dem UDT gerade eine Modul-Aktion ausgeführt werden soll oder nicht. Damit der UDT da nicht dazwischenfunkt. Er soll nur dann dazwischenfunken, wenn es sich um das FrontEndUsers Modul handelt. Aber auch nur dann, wenn es sich um die Login-Aktion handelt. In jedem anderen Fall macht der UDT einfach nichts. Ist aber quatsch. Denn wenn Du statt {$formstart} Dein eigenes &lt;form&gt;-Tag verwendest, ist das ja überhaupt nicht nötig. Dann reicht es, die &quot;feu_action_id&quot; zu prüfen. (siehe oben &quot;verstecktes Feld&quot;)</p><p>Also ändere den Teil mal so ab:</p><div class="codebox"><pre><code># FEU installed and active? if not -&gt; do nothing.
if(!$feu = &amp;cms_utils::get_module(&#039;FrontEndUsers&#039;))
	return;

# some security stuff since no one else will do it this time
array_walk_recursive($_POST, &#039;sanitize_input_array&#039;);

# we did not sent the login-form? -&gt; Do nothing.
if(!isset($_POST[&#039;feu_action_id&#039;]))
	return;

# module id
$id = $_POST[&#039;feu_action_id&#039;];

# Get ModuleParams
$_params = array_merge($_GET, $_POST);
$params  = array();
foreach($_params as $k=&gt;$v)
{
	if(strpos($k, $id) !== 0)
		continue;
	$params[substr($k, strlen($id))] = $v;
}

$pin = isset($params[&#039;feu_pin&#039;]) &amp;&amp; $params[&#039;feu_pin&#039;] != &#039;&#039;;

$smarty = &amp;cmsms()-&gt;GetSmarty();</code></pre></div><p> </p><div class="quotebox"><blockquote><div><p>Offenbar ist es so dass im meiner FEU Version die Inhalte anders abgefragt werden?<br />In der Modulhilfe steht es mit:</p><p>username: {feu_smarty::get_username()}<br />userID: {feu_smarty::get_userid($username)}<br />pin: {feu_smarty::get_user_property(&#039;pin&#039;)}</p></div></blockquote></div><p>Du vermischst hier zwei verschiedene Sachen.<br />Geschweifte Klammern = SMARTY.<br />D.h. Code, der ins Template gehört.<br />Was ich gemacht habe, ist PHP.<br />Das ist Code, der in ein Plugin oder einen UDT gehört.<br />Du verwendest z.B. in Deinem Beitrag das PHP-Kommentarzeichen <strong>#</strong> im Smarty-Template&#160; <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/wink.png" alt="wink" /><br />Kommentare in Smarty-Templates macht man aber ebenfalls mit geschweiften Klammern und einem *: </p><div class="codebox"><pre><code>{* dies ist ein kommentar *}</code></pre></div><p>Anderenfalls wird der Kommentar im FrontEnd als Text angezeigt.</p><div class="quotebox"><blockquote><div><p>im UDT von Nan steht beispielsweise<br />if(!$uid = $feu-&gt;GetUserID($params[&#039;feu_input_username&#039;]))</p><p>kann ich das einfach mit</p><div class="codebox"><pre><code>{capture assign=&quot;MyUserID&quot;}{feu_smarty::get_username()}{/capture}
if(!$uid = $MyUserID)</code></pre></div><p>ersetzen?</p></div></blockquote></div><p>Nein.<br />Weil das zwei völlig verschiedene Sprachen sind.</p><p>Du kannst zwar im Template mit {feu_smarty:: ...} diverse Dinge abfragen, aber Du kannst keinen Login durchführen.</p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Thu, 06 Aug 2015 07:49:57 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35935#p35935</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35934#p35934</link>
			<description><![CDATA[<p>habe es jetzt lange vor mir hergeschoben... muss das Ding endlich ans laufen bringen. <br />Mir reicht es erstmal wenn die PIN ausgewertet wird.<br />Ich muss dazusagen dass ich mich generell mit der erstellung von Formularen aus technischer Sicht nicht auskenne. Formulare lege ich üblicherweise mit Formbuilder an. Ich bitte daher um ein wenig Nachsicht beim lesen und ggf. beantworten des folgenden. Es sind mit Sicherheit sehr grundlegenden Fragen. <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/neutral.png" alt="neutral" /> </p><p>Ich habe zur UDT-Lösung noch zahlreiche Fragen.</p><div class="quotebox"><cite>NaN schrieb:</cite><blockquote><div><p>Also im Login-Formular-Template nicht {$startform} oder so verwenden sondern das Formular selbst bauen</p></div></blockquote></div><br /><p>was genau macht {$startform} was macht {$endform}?</p><div class="codebox"><pre><code>&lt;form action=&quot;{$smarty.server.PHP_SELF}&quot; ... &gt;</code></pre></div><p>wofür ist das, bzw. was wäre ...?</p><br /><div class="quotebox"><cite>NaN schrieb:</cite><blockquote><div><p>Die <span class="bbs">beiden</span> Felder <span class="bbs">für AGB und</span> PIN fügst Du im Formular nach Benutzername/Passwort selbst hinzu:</p></div></blockquote></div><p>Ich habe das PIN-Feld in der &quot;Anmeldungsvorlage&quot; von FrontendUser hinzugefügt.<br />Dort habe ich bereits den Umschalter per $page_alias eingebaut.</p><div class="codebox"><pre><code>{if $page_alias == &quot;extendedLogin&quot;}
#UDT Aufruf
{pin_kontrolle}  
&lt;input type=&quot;email&quot; id=&quot;feu_username&quot; name=&quot;{$fldname_username}&quot; value=&quot;{$username}&quot; size=&quot;20&quot; maxlength=&quot;20&quot; required/&gt;

&lt;input type=&quot;password&quot; id=&quot;feu_password&quot; name=&quot;{$fldname_password}&quot; value=&quot;{$password}&quot; size=&quot;20&quot; maxlength=&quot;20&quot; required/&gt;

#zusätzliches PIN-feld
&lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;{$actionid}feu_pin&quot; size=&quot;4&quot; maxlength=&quot;4&quot; required/&gt;

{/if}</code></pre></div><p>Das funktioniert gut. Wenn man auf die Loginseite mit der Zusatzpin geht wird dort das Feld angezeigt.<br />Das wird auch richtig angezeigt.<br />Ist das soweit richtig oder muss das Formular ganz anders neu aufgebaut werden?</p><p>nun zum UDT von Nan:<br />Ich habe es mal ein wenig zerpflückt.<br />Der erste Teil. Muss ich hier irgendwas verändern oder kann das so bleiben?</p><div class="codebox"><pre class="vscroll"><code>[== UDT ==]
if(!$feu = &amp;cms_utils::get_module(&#039;FrontEndUsers&#039;))
	return;

array_walk_recursive($_POST, &#039;sanitize_input_array&#039;);

# Get ModuleName, ModuleID, ModuleAction
if (isset($_REQUEST[&#039;module&#039;]))
	$module = $_REQUEST[&#039;module&#039;];

if (isset($_REQUEST[&#039;action&#039;])) 
	$action = $_REQUEST[&#039;action&#039;];

if (isset($_REQUEST[&#039;id&#039;]))
	$id = $_REQUEST[&#039;id&#039;];
elseif (isset($_REQUEST[&#039;mact&#039;])) 
{
	$tmp    = explode(&#039;,&#039;, cms_htmlentities($_REQUEST[&#039;mact&#039;]), 4);
	$module = isset($tmp[0]) ? $tmp[0] :&#039;&#039;;
	$id     = isset($tmp[1]) ? $tmp[1] :&#039;m1_&#039;;
	$action = isset($tmp[2]) ? $tmp[2] : &#039;&#039;;
}

if($module !== &#039;FrontEndUsers&#039; || $action !== &#039;do_login&#039;)
	return;


# Get ModuleParams
$_params = array_merge($_GET, $_POST);
$params  = array();
foreach($_params as $k=&gt;$v)
{
	if(strpos($k, $id) !== 0)
		continue;
	$params[substr($k, strlen($id))] = $v;
}



$pin = isset($params[&#039;feu_pin&#039;]) &amp;&amp; $params[&#039;feu_pin&#039;] != &#039;&#039;;

$smarty = &amp;cmsms()-&gt;GetSmarty();</code></pre></div><p>Verstehe davon ganz grob was in etwa passiert, kann aber nicht sagen was genau <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/smile.png" alt="smile" /> bzw. was ich ändern müsste.</p><br /><p>Die AGB-prüfung habe ich hier entfernt.</p><div class="codebox"><pre class="vscroll"><code>if(!$pin)
	$smarty-&gt;assign(&#039;login_error_msg_pin&#039;, &#039;Sie müssen eine gültige PIN eingeben.&#039;);
	


if($pin)
{

	$error = false;
	
	# 1. UserID holen
	if(!$uid = $feu-&gt;GetUserID($params[&#039;feu_input_username&#039;]))
	{
		$smarty-&gt;assign(&#039;login_error_msg_user&#039;, &#039;Der Benutzer &quot;&#039; . $params[&#039;feu_input_username&#039;] . &#039;&quot; existiert nicht oder das Passwort ist stimmt nicht überein.&#039;);
		return;
	}
	
	# 2. PIN auslesen
	if(!$_pin = $feu-&gt;GetUserPropertyFull(&#039;pin&#039;, $uid))
	{
		$smarty-&gt;assign(&#039;login_error_msg_pin&#039;, &#039;Für diesen Benutzer wurde noch keine PIN hinterlegt.&#039;);
		return;
	}
	
	# 3. PIN vergleichen
	if($params[&#039;feu_pin&#039;] !== $_pin)
	{
		$smarty-&gt;assign(&#039;login_error_msg_pin&#039;, &#039;Die eingegebene PIN ist fehlerhaft.&#039;);
		return;
	}
	
	# 4. login
	$feu-&gt;DoAction(&#039;do_login&#039;, $id, $params, $params[&#039;returnid&#039;]);
}</code></pre></div><p>Offenbar ist es so dass im meiner FEU Version die Inhalte anders abgefragt werden?<br />In der Modulhilfe steht es mit:</p><p>username: {feu_smarty::get_username()}<br />userID: {feu_smarty::get_userid($username)}<br />pin: {feu_smarty::get_user_property(&#039;pin&#039;)}</p><p>drin. Und der Hinweis&#160; <span class="bbu">&quot;And all methods must be accessed statically. Additionally, there is no assign param. You must capture the output of the function into a smarty variable.&quot;</span></p><p>Habe die Werte im eingeloggten Zustand mit obigen Tags auch schon angezeigt bekommen, das funktioniert prinzipiell. </p><p>im UDT von Nan steht beispielsweise<br />if(!$uid = $feu-&gt;GetUserID($params[&#039;feu_input_username&#039;]))</p><p>kann ich das einfach mit </p><div class="codebox"><pre><code>{capture assign=&quot;MyUserID&quot;}{feu_smarty::get_username()}{/capture}
if(!$uid = $MyUserID)</code></pre></div><p>ersetzen?</p><br /><p>So wie es im moment drin ist funktioniert es leider nicht.<br />Wenn ich Username und Passwort + falsche PIN eingebe loggt er sich ein als wäre nichts</p><p>Wenn ich Username und Passwort + richtige PIN eingebe loggt er sich ein als wäre nichts</p><p>Wenn ich Username und falsches Passwort + eine falsche PIN eingebe loggt er sich nicht ein läuft aber ansonsten.</p><p>Wenn ich Username und <strong>falsches Passwort</strong> + eine <strong>richtige PIN</strong> eingebe rödelt er ne weile und zeigt dann einen weissen Screen</p><p>Also irgendwas macht er.<br />Ich kann aber nicht feststellen an welchen Stellen die Fehler stecken.</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Wed, 05 Aug 2015 14:19:08 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35934#p35934</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35921#p35921</link>
			<description><![CDATA[<p>CMS-Version&#160; &#160; &#160; &#160; 1.12<br />FrontEndUsers&#160; &#160; &#160; &#160; 1.29</p><p>sollte beides aktuell sein.</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Tue, 04 Aug 2015 10:27:19 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35921#p35921</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35919#p35919</link>
			<description><![CDATA[<p>Welche Versionen hast du am Laufen (CMSMS, FEU)?</p>]]></description>
			<author><![CDATA[dummy@example.com (cyberman)]]></author>
			<pubDate>Tue, 04 Aug 2015 09:26:14 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35919#p35919</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35918#p35918</link>
			<description><![CDATA[<p>hab mich inzwischen daran versucht, bekomme es aber bislang leider nicht ans laufen.<br />Mir fehlen einfach zu viele Grundlagen um mich da durchzufummeln. Denke der Ansatz von NaN sollte funktionieren und vollkommen ausreichen. Mit den Modulen die Cyberman verlinkt hat komme ich leider auch nicht weiter. Da fehlt jeglich Dokumentation.</p><p>Kann mir da jemand weiterhelfen, liebend gerne auch gegen Bezahlung. Wäre wirklich froh wenn das jemand übernehmen könnte!</p><p>edit: vorerst würde auch erstmal die Überprüfung des zweiten Passworts ausreichen!</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Mon, 03 Aug 2015 19:18:16 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35918#p35918</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35842#p35842</link>
			<description><![CDATA[<p>Hey Leute, ihr seid spitze!<br />Da hab ich ja mal Lektüre für heute Abend <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/smile.png" alt="smile" /><br />Mal sehen ob ich das mit eurer Hilfestellung gestemmt bekomme.</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Tue, 21 Jul 2015 10:41:06 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35842#p35842</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35839#p35839</link>
			<description><![CDATA[<p>Interessant.</p><p>Ich hätte es jetzt mit einem Plugin/UDT erledigt:<br />D.h. Du schickst das Login-Forlumar nicht an FEU sondern an die aktuelle Seite und statt FEU wertet das Plugin/der UDT das Formular aus und führt anschließend die Login-Funktion von FEU aus. Also im Login-Formular-Template nicht {$startform} oder so verwenden sondern das Formular selbst bauen:</p><div class="codebox"><pre><code>&lt;form action=&quot;{$smarty.server.PHP_SELF}&quot; ... &gt;</code></pre></div><p>Die beiden Felder für AGB und PIN fügst Du im Formular nach Benutzername/Passwort selbst hinzu:</p><div class="codebox"><pre><code>&lt;input type=&quot;checkbox&quot; value=&quot;1&quot; name=&quot;{$actionid}feu_agb&quot; /&gt;
&lt;input type=&quot;text&quot; value=&quot;&quot; name=&quot;{$actionid}feu_pin&quot; /&gt;</code></pre></div><p>Das Plugin/der UDT wertet dann zunächst aus, ob die Checkbox gesetzt ist und die eingegebene PIN mit der des Benutzers übereinstimmt. Falls nicht, erfolgt kein Login. Ansonsten ruft das Plugin dann die FEU-Funktion zum Einloggen auf und übergibt dabei die Formular-Daten.</p><p>Bsp. (ungetestet):</p><div class="codebox"><pre class="vscroll"><code>[== UDT ==]
if(!$feu = &amp;cms_utils::get_module(&#039;FrontEndUsers&#039;))
	return;

array_walk_recursive($_POST, &#039;sanitize_input_array&#039;);

# Get ModuleName, ModuleID, ModuleAction
if (isset($_REQUEST[&#039;module&#039;]))
	$module = $_REQUEST[&#039;module&#039;];

if (isset($_REQUEST[&#039;action&#039;])) 
	$action = $_REQUEST[&#039;action&#039;];

if (isset($_REQUEST[&#039;id&#039;]))
	$id = $_REQUEST[&#039;id&#039;];
elseif (isset($_REQUEST[&#039;mact&#039;])) 
{
	$tmp    = explode(&#039;,&#039;, cms_htmlentities($_REQUEST[&#039;mact&#039;]), 4);
	$module = isset($tmp[0]) ? $tmp[0] :&#039;&#039;;
	$id     = isset($tmp[1]) ? $tmp[1] :&#039;m1_&#039;;
	$action = isset($tmp[2]) ? $tmp[2] : &#039;&#039;;
}

if($module !== &#039;FrontEndUsers&#039; || $action !== &#039;do_login&#039;)
	return;

# Get ModuleParams
$_params = array_merge($_GET, $_POST);
$params  = array();
foreach($_params as $k=&gt;$v)
{
	if(strpos($k, $id) !== 0)
		continue;
	$params[substr($k, strlen($id))] = $v;
}

$agb = isset($params[&#039;feu_agb&#039;]) &amp;&amp; $params[&#039;feu_agb&#039;] == 1;
$pin = isset($params[&#039;feu_pin&#039;]) &amp;&amp; $params[&#039;feu_pin&#039;] != &#039;&#039;;

$smarty = &amp;cmsms()-&gt;GetSmarty();

if(!$agb)
	$smarty-&gt;assign(&#039;login_error_msg_agb&#039;, &#039;Sie müssen den Nutzungsbedingungen zustimmen um sich anmelden zu können.&#039;);
if(!$pin)
	$smarty-&gt;assign(&#039;login_error_msg_pin&#039;, &#039;Sie müssen eine gültige PIN eingeben.&#039;);

if($agb &amp;&amp; $pin)
{
	$error = false;
	
	# 1. UserID holen
	if(!$uid = $feu-&gt;GetUserID($params[&#039;feu_input_username&#039;]))
	{
		$smarty-&gt;assign(&#039;login_error_msg_user&#039;, &#039;Der Benutzer &quot;&#039; . $params[&#039;feu_input_username&#039;] . &#039;&quot; existiert nicht oder das Passwort ist stimmt nicht überein.&#039;);
		return;
	}
	
	# 2. PIN auslesen
	if(!$_pin = $feu-&gt;GetUserPropertyFull(&#039;pin&#039;, $uid))
	{
		$smarty-&gt;assign(&#039;login_error_msg_pin&#039;, &#039;Für diesen Benutzer wurde noch keine PIN hinterlegt.&#039;);
		return;
	}
	
	# 3. PIN vergleichen
	if($params[&#039;feu_pin&#039;] !== $_pin)
	{
		$smarty-&gt;assign(&#039;login_error_msg_pin&#039;, &#039;Die eingegebene PIN ist fehlerhaft.&#039;);
		return;
	}
	
	# 4. login
	$feu-&gt;DoAction(&#039;do_login&#039;, $id, $params, $params[&#039;returnid&#039;]);
}</code></pre></div><p>Und im Seitentemplate fügst Du diesen UDT vor dem Login-Formular ein.</p><p>Im Login-Formular-Template prüfst Du, ob die vom UDT generierten Fehlermeldungen existieren und gibst sie an gegebener Stelle aus.</p><p>Das Ganze könnte man natürlich auch in Form eines Moduls machen. <br />Wäre sogar ratsam, weil man dieses Plugin umgehen kann, wenn man die Login-URL zum FEU-Modul kennt.</p>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Tue, 21 Jul 2015 09:38:28 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35839#p35839</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35838#p35838</link>
			<description><![CDATA[<div class="quotebox"><cite>bd0 schrieb:</cite><blockquote><div><p>Hab mir das Modul angeschaut. Glaube nicht das ich das &quot;mal eben&quot; umgebaut bzw. erweitert bekomme <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/sad.png" alt="sad" /><br />Am nachhaltigsten wäre es vermutlich wenn calguy die benötigten Funktionen einbauen würde.</p></div></blockquote></div><p>Ist vielleicht gar nicht erforderlich - mir ist da etwas eingefallen. Schau mal hier</p><p><a href="http://dev.cmsmadesimple.org/projects/feu_auth_basic" rel="nofollow">http://dev.cmsmadesimple.org/projects/feu_auth_basic</a><br /><a href="http://dev.cmsmadesimple.org/projects/feu_auth_imis" rel="nofollow">http://dev.cmsmadesimple.org/projects/feu_auth_imis</a><br /><a href="http://dev.cmsmadesimple.org/projects/feu_auth_ldap" rel="nofollow">http://dev.cmsmadesimple.org/projects/feu_auth_ldap</a></p><p>Das sind alles Module, die dem FEU-Modul eine eigene Login-Prozedur hinzufügen. Mit diesen als &quot;Muster&quot; ließe sich evtl. auch dein Anliegen umsetzen ... und so findet sich beim ersten Link folgender Hinweis</p><div class="quotebox"><blockquote><div><p>This module is a simple example module to show how to do authentication modules for FEU.</p></div></blockquote></div>]]></description>
			<author><![CDATA[dummy@example.com (cyberman)]]></author>
			<pubDate>Tue, 21 Jul 2015 09:28:21 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35838#p35838</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35836#p35836</link>
			<description><![CDATA[<p>Wenn man im Anmelde-Template Häckchen und PIN dazu gibt mit assign und wegschreibt in ein Cookie.<br />Dann könnte man doch bei der Seitenanruf kontrollieren ob beide gesetzt sind, wenn nicht dann umleiten.</p><p>Nur so ein Idee.</p><p>M.f.G.<br />Jan</p>]]></description>
			<author><![CDATA[dummy@example.com (Janl)]]></author>
			<pubDate>Tue, 21 Jul 2015 08:43:17 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35836#p35836</guid>
		</item>
		<item>
			<title><![CDATA[Re: [GELÖST] FrontendUser FEU - login erweitern/aufbohren/duplizieren]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35835#p35835</link>
			<description><![CDATA[<p>Hab mir das Modul angeschaut. Glaube nicht das ich das &quot;mal eben&quot; umgebaut bzw. erweitert bekomme <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/sad.png" alt="sad" /><br />Am nachhaltigsten wäre es vermutlich wenn calguy die benötigten Funktionen einbauen würde. Laut seiner Website gibt er ja bezahlten support... fliesst so eine Erweiterung dann ggf. auch in die &quot;normale&quot; Version ein?<br />Ein dranbasteln hat vermutlich den Nachteil dass es nach dem nächsten Update überschrieben würde, richtig?</p>]]></description>
			<author><![CDATA[dummy@example.com (bd0)]]></author>
			<pubDate>Tue, 21 Jul 2015 08:10:57 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=35835#p35835</guid>
		</item>
	</channel>
</rss>
