Seite 4 von 5
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 14. Jun 2013, 09:00
von michaelwandel
Hi
Ja das nervt mich selbst gerade sehr
Ich schau mir das an
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 14. Jun 2013, 13:26
von michaelwandel
Hi,
teste doch mal bitte folgendes Login-Modul:
Code: Alles auswählen
<?php
global $REX;
$thispage = "tvsfeuser";
$areaname = "feuser";
$table_pre = $REX['TABLE_PREFIX'] . $REX['ADDON']['rxid'][$thispage];
$user_table = $table_pre . "_user";
$tvsfe_error = "";
if (!isset ($_SESSION)) {
session_start();
}
// Auslesen von Benutzern und Passworten
$users = array();
$sql = new rex_sql();
$sql->setQuery("SELECT * FROM " . $user_table);
if ($sql->getRows() > 0 ) {
for ($i = 1; $i <= $sql->getRows(); $i++) {
$users[$sql->getValue('login')]['psw'] = $sql->getValue('psw');
$users[$sql->getValue('login')]['rights'] = $sql->getValue('rights');
$users[$sql->getValue('login')]['status'] = $sql->getValue('status');
$sql->next();
}
}
if (rex_post('username', 'string', '') != "" && rex_post('userpw', 'string', '') == $users[rex_post('username', 'string', '')]['psw']) {
$userrights_array = explode(",", $users[rex_post('username', 'string', '')]['rights']);
if ($users[rex_post('username', 'string', '')]['status'] == 1) {
if (in_array(rex_get('target_id', 'int', 0), $userrights_array)) {
$_SESSION[$thispage][$areaname]['user'] = rex_post('username', 'string', '');
$_SESSION[$thispage][$areaname]['rights'] = $users[rex_post('username', 'string', '')]['rights'];
$_SESSION[$thispage][$areaname]['access'] = "yes";
} else {
unset($_SESSION[$thispage][$areaname]);
$tvsfe_error = "Benutzerzugriff verweigert!";
}
} else {
unset($_SESSION[$thispage][$areaname]);
$tvsfe_error = "Benutzerzugriff verweigert!";
}
} else {
$userrights_array = explode(",", $users[$_SESSION[$thispage][$areaname]['user']]['rights']);
if ($users[$_SESSION[$thispage][$areaname]['user']]['status'] == 1) {
if (in_array(rex_get('target_id', 'int', 0), $userrights_array)) {
$_SESSION[$thispage][$areaname]['access'] = "yes";
} else {
$_SESSION[$thispage][$areaname]['access'] = "no";
$tvsfe_error = "Benutzerzugriff verweigert!";
}
} else {
$tvsfe_error = "Benutzerzugriff verweigert!";
}
}
// Frontend?
if($REX['REDAXO'] != 1) {
$loginmessage = "Bitte melden Sie sich an!";
$username = "Benutzername:";
$password = "Passwort:";
$buttonlabel = "Anmelden";
// Benutzer nicht angemeldet? Dann Formular anzeigen!
if ($tvsfe_error != "")
echo "<p>" . $tvsfe_error . "</p>";
if(!isset($_SESSION[$thispage][$areaname]) or $_SESSION[$thispage][$areaname]['access'] != "yes") {
echo "<div class=\"tvsfeuser_login\">";
echo '<h4>' . $loginmessage . '</h4>
<form name="loginform" method="post" action="">
<label for="username">' . $username . '</label><br />
<input type="text" size="40" name="username" /><br />
<label for="userpw">' . $password . '</label><br />
<input type="password" size="40" name="userpw" /><br />
<input type="submit" name="buttonSubmit" id="buttonSubmit" value="' . $buttonlabel . '" />
</form>';
echo "</div>";
}
else {
rex_redirect(rex_get('target_id', 'int', 0), $REX['CUR_CLANG']);
}
}
?>
Wenn's klappt dann bau ich das mal ins Addon ein
Gruß, Michael
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 14. Jun 2013, 13:51
von sueshi
Die Meldung steht aber immer dort, nicht erst nach dem Betätigen des Buttons. Daran bin ich bisher auch immer gescheitert ...
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 14. Jun 2013, 13:55
von michaelwandel
Ups mist
Ok, ich schaue
Gruß, Michael
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 14. Jun 2013, 18:15
von michaelwandel
So, jetzt sollte es klappen
Code: Alles auswählen
<?php
global $REX;
$thispage = "tvsfeuser";
$areaname = "feuser";
$table_pre = $REX['TABLE_PREFIX'] . $REX['ADDON']['rxid'][$thispage];
$user_table = $table_pre . "_user";
$tvsfe_error = "";
if (!isset ($_SESSION)) {
session_start();
}
// Auslesen von Benutzern und Passworten
$users = array();
$sql = new rex_sql();
$sql->setQuery("SELECT * FROM " . $user_table);
if ($sql->getRows() > 0 ) {
for ($i = 1; $i <= $sql->getRows(); $i++) {
$users[$sql->getValue('login')]['psw'] = $sql->getValue('psw');
$users[$sql->getValue('login')]['rights'] = $sql->getValue('rights');
$users[$sql->getValue('login')]['status'] = $sql->getValue('status');
$sql->next();
}
}
if (rex_post('username', 'string', '') != "" && rex_post('userpw', 'string', '') == $users[rex_post('username', 'string', '')]['psw']) {
$userrights_array = explode(",", $users[rex_post('username', 'string', '')]['rights']);
if ($users[rex_post('username', 'string', '')]['status'] == 1) {
if (in_array(rex_get('target_id', 'int', 0), $userrights_array)) {
$_SESSION[$thispage][$areaname]['user'] = rex_post('username', 'string', '');
$_SESSION[$thispage][$areaname]['rights'] = $users[rex_post('username', 'string', '')]['rights'];
$_SESSION[$thispage][$areaname]['access'] = "yes";
} else {
unset($_SESSION[$thispage][$areaname]);
$tvsfe_error = "Benutzerzugriff verweigert!";
}
} else {
unset($_SESSION[$thispage][$areaname]);
$tvsfe_error = "Benutzerzugriff verweigert!";
}
} else {
$userrights_array = explode(",", $users[$_SESSION[$thispage][$areaname]['user']]['rights']);
if ($users[$_SESSION[$thispage][$areaname]['user']]['status'] == 1) {
if (in_array(rex_get('target_id', 'int', 0), $userrights_array)) {
$_SESSION[$thispage][$areaname]['access'] = "yes";
} else {
$_SESSION[$thispage][$areaname]['access'] = "no";
$tvsfe_error = "Benutzerzugriff verweigert!";
}
} else {
if (rex_post('username', 'string', '') != "" && rex_post('username', 'string', '') != "")
$tvsfe_error = "Benutzerzugriff verweigert!";
}
}
// Frontend?
if($REX['REDAXO'] != 1) {
$loginmessage = "Bitte melden Sie sich an!";
$username = "Benutzername:";
$password = "Passwort:";
$buttonlabel = "Anmelden";
// Benutzer nicht angemeldet? Dann Formular anzeigen!
if ($tvsfe_error != "")
echo "<p>" . $tvsfe_error . "</p>";
if(!isset($_SESSION[$thispage][$areaname]) or $_SESSION[$thispage][$areaname]['access'] != "yes") {
echo "<div class=\"tvsfeuser_login\">";
echo '<h4>' . $loginmessage . '</h4>
<form name="loginform" method="post" action="">
<label for="username">' . $username . '</label><br />
<input type="text" size="40" name="username" /><br />
<label for="userpw">' . $password . '</label><br />
<input type="password" size="40" name="userpw" /><br />
<input type="submit" name="buttonSubmit" id="buttonSubmit" value="' . $buttonlabel . '" />
</form>';
echo "</div>";
}
else {
rex_redirect(rex_get('target_id', 'int', 0), $REX['CUR_CLANG']);
}
}
?>
Gruß, Michael .-)
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 17. Jun 2013, 09:20
von sueshi
Vielen Dank, das ist gleich viel besser!!! Sollte auch gleich in den Addon-Download rein ...
lg,su
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 18. Jun 2013, 12:39
von bugrogers
Vielen Dank für das Super einfach zu verwendende Addon!
Ist es eigentlich möglich, daß man das Loginmodul auch irgendwie so verwenden kann, daß man sich auch direkt einloggen kann ohne vorher auf einen Link klicken zu müssen? Sprich die LoginMaske steht direkt auf der Startseite der Webseite und man gibt die Login-Daten ein und landet dann auf der entsprechend geschützten Seite? Danke für kurze Info - ob das überhaupt geht!
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 18. Jun 2013, 13:06
von rogerhro
Hallo Michi,
ich finde dein AddOn super.
Habe es bei mir installiert nur leider, wenn ich es aufrufen will kommt ein Fehler. Das er die Weiterleitung nicht macht, es ist sehr komisch, hoffe du kannst mir helfen???
Lg Roger
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 18. Jun 2013, 13:11
von michaelwandel
Mmmh, da muss ich mal Schaaaaaf drüber nachdenken, das bisherige Prinzip ist leider nicht immer ersichtlich
Mal schauen
Gruß, Michael
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 18. Jun 2013, 13:14
von michaelwandel
Hi Roger,
ööhm was macht er genau wenn Du wo hinklickst ?
Du musst auf jeden Fall eine separate Login-Seite mit dem beiliegenden Modul anlegen und beim Addon dies als Login-Seite angeben
Gruß, Michael
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 18. Jun 2013, 13:26
von rogerhro
Hey Michi,
nun ist der Fehler weg aber da kommt der Login nicht =/
Also modul ist drin aber wird nicht angezeigt.
Edit: fehler wieder da =/...ich werde gleich verrückt
Edit: Habe es hinbekommen =)
LG
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 20. Jun 2013, 08:04
von michaelwandel
Fein
Irgendwas was man evtl. noch berücksichtigen sollte damit sowas nicht vorkommt ?
Gruß, Michael
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 15. Aug 2013, 12:07
von svenalbert
Hallo Michael,
gibt es Erfahrungen mit der Funktionalität des Addons unter REX 4.5?
Viele Grüße,
Sven
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 15. Aug 2013, 12:11
von michaelwandel
Hi Sven,
sollte eigentlich funktionieren
Habe es leider noch nicht im Einsatz bei einem 4.5-er Projekt aber aktiviert ist es und scheint zu laufen
Einfach mal testen
Gruß, Michael :
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 15. Aug 2013, 21:40
von svenalbert
Hi Michael, danke für die schnelle Antwort.
Gut, das mit dem Testen hab' ich gemacht und es tut es, aber ...
... blöderweise tut es nicht genau das, was ich dachte dass es tut. Das Addon greift ja die geschützten Artikel ab und leitet auf die Loginseite weiter.
Ich wollte es jetzt so umarbeiten, dass, wenn man direkt auf der Loginseite ankommt und sich einloggt, dann auf die erste (weil bei mir einzige) Seite weitergeleitet wird. Derzeit passiert da ja nichts. Oder sollte da was passieren und es liegt an der Rex-Version?
Leider ist das Modul relativ schlecht kommentiert und ich blicke noch nicht zu 100% durch, aber ich denke ich muss, wenn keine Target-ID übergeben wurde, eine alternative ID für das rex_redirect geben können.
Der erste Schlag ging grad daneben. Hast Du ne fixe Idee? Du kennst Dein Skript besser.
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 27. Aug 2013, 11:52
von syn
svenalbert hat geschrieben:
... blöderweise tut es nicht genau das, was ich dachte dass es tut. Das Addon greift ja die geschützten Artikel ab und leitet auf die Loginseite weiter.
Ich wollte es jetzt so umarbeiten, dass, wenn man direkt auf der Loginseite ankommt und sich einloggt, dann auf die erste (weil bei mir einzige) Seite weitergeleitet wird. Derzeit passiert da ja nichts. Oder sollte da was passieren und es liegt an der Rex-Version?
ich habe gerade genau das selbe problem unter 4.5!
das wäre super wenn das geht oder gefixt wird.
und noch eine frage zum schluss. ist geplant benutzer gruppen einzubinden? wäre top!
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 28. Aug 2013, 07:52
von michaelwandel
hi
Na kein Problem, Sven hat sich des Problems angenommen und es war eigentlich nur eine kleine Änderung im Ausgabemodul notwendig, ist in der kommenden Version berücksichtigt, ich schaue mal das ich das nächste Woche zusammenpacke
Gruß, Michael
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 10. Sep 2013, 21:23
von steffen
Gibt es hier schon etwas Neues? Ich habe eine 4.5 Installation und bekomme tvsfeuser nicht zum Laufen. Falls es relevant ist: Ich nutze full url rewriting.
Mir würde auch ein konkreter Hinweis, was ich ändern muss, reichen.
Danke für eure Arbeit
Steffen
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 29. Nov 2013, 16:30
von karlnappmitdenasskap
Hallo,
ich habe TVSFEUser 0.7 jetzt mal testweise installiert auf REX 4.4.1 mit RexSEO.
Ist ja nicht allzuschwierig:
- AddOn installiert u. kativiert
- Login- u. Logout-Modul angelegt
- extra neue Kategorie als Geschützten Bereich angelegt
- Kategorie z. Login angelegt
- Module dort entsprechend eingebunden
- dann im AddOn Kategorie Geschützter Bereich markiert u. Login auf entsprechenden Artikel gelegt, - - - dann Benutzer angelegt u. Rechte für Geschützter Bereich vergeben.
Dann mal vorsorglich Cache gelöscht...
Einloggen kann ich mich jetzt wunderbar. Wenn ich allerdings auf den Logout-Button klicke, werde ich nicht ausgeloggt.
In der "tvsfeuser.ini" sind d. Arikel für d. Geschützten Bereich u. Login richtig gespeichert.
Es hängt irgendwo in der Ausgabe d. Logout-Moduls.
Ich habe deshalb dort mal testweise die ganzen IF-Abfragen rausgenommen, sodass direkt "
unset($_SESSION[$thispage][$areaname]);" ausgeführt wird.
Logische Konsequenz: Wenn man in der Navigation auf den Geschützten Bereich klickt, in dem dieses Logout-Modul eingefügt ist, wird man direkt ausgeloggt - das klappt.
Es hakt also irgendwo bei der Kontrolle der Session vorher...denke ich.
Woran könnte das liegen?
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 16. Feb 2014, 02:25
von VX500
Hallo,
kann man irgendwie mit einer SQL-Abfrage aus der Tabelle 784_user den Benutzernamen (name oder ggf. login) auslesen und im eingeloggten Zustand auf der Website anzeigen?
So dass man als Frontenduser sieht, mit welchem Benutzernamen man gerade eingeloggt ist.
Grüße
Sascha
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 17. Feb 2014, 10:23
von michaelwandel
Hi,
ganz einfach kannst Du schon mal den eingeloggten User auslesen, der steht ja in der Session-Variable:
Gruß, Michael
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 27. Feb 2014, 02:00
von VX500
Hallo Michael,
danke für Deinen Tipp mit der $session! Funktioniert super.
Viele Grüße,
Sascha
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 4. Mär 2014, 17:50
von beyben
na hgi und danke fuer das addon - benutze rex 4.5 und es laeuft gut. ich suche seit einer weile den ansatz von svenalbert umzusetzen, soll heissen, ich versuche gerade den ersten geschuetzten bereich eines users anzuspringen, wenn target_id = 0:
ziemlich am ende des login-moduls wollte ich die target_id abfragen, denn wenn ich mich auf der login-seite anmelde, kommt einfach nur wieder die seite ansich.
ich habe für
Code: Alles auswählen
rex_redirect(rex_get('target_id', 'int', 0), $REX['CUR_CLANG']);
das versucht:
Code: Alles auswählen
$targett = rex_get('target_id', 'int', 0);
if ($targett != '0') {rex_redirect($targett, $REX['CUR_CLANG']);}
else {echo '<script type="text/javascript">alert("kein target gesetzt")</script>';}
aber leider haut das nicht hin - denn wenn das javascript ausgegeben werden wuerde, koennte ich hier ich hier dem nutzer entsprechend den ersten [rights] als target geben... bei der ausgabe von rex_get('target_id', 'int', 0) wird aber immer '0' ausgegeben...
hat einer nen ansatz? wars verstaendlich? ben
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 4. Mai 2015, 11:15
von meugel
Hallo,
hat jemand schon versucht, das AddOn in Verbindung mit SEO42 zu laufen zu bringen?
Redaxo 4.6.1
PHP 5.5.24
MySQL 5.1.51
Re: NEU: Addon TVSFEUser - Frontend-User-Login
Verfasst: 8. Mai 2015, 13:22
von Popkultur
Hi,
Ich versuche RexSearch anzupassen, so dass in geschützten Bereich andere Suchergebnisse auftauchen mit dem Hinweis "Sie suchen im geschützten Bereich".
Dazu muss ich wohl feststellen, ob der Besucher eingeloggt ist, sowie ob er die erforderlichen Rechte hat für jedes Einzel-suchergebnis dass es angezeigt wird (Sonst landet er ja auf der Loginseite).
Wie gehe ich da ran?
PS: Ja, bei mir läuft es mit SEO42, aber ich war es nicht, der das eingebaut hat.