
Ja das nervt mich selbst gerade sehr

Ich schau mir das an

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']);
}
}
?>
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']);
}
}
?>
ich habe gerade genau das selbe problem unter 4.5!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?
Code: Alles auswählen
$_SESSION['tvsfeuser']['feuser']['user']
Code: Alles auswählen
rex_redirect(rex_get('target_id', 'int', 0), $REX['CUR_CLANG']);
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>';}