mal wieder ein kleiner netter Bug in der 2.0.5: Benutzer, die ein einfaches Anführungszeichen in ihrem Namen haben, können sich nicht anmelden. Auch kann der entsprechende Benutzer nicht im Admin-Bereich aufgerufen werden. Eine entsprechende Registrierung ist jedoch möglich.
Hier der Fix: (aus CVS)
öffne login.php, suche
Code: Alles auswählen
$username = isset($HTTP_POST_VARS['username']) ? trim(htmlspecialchars($HTTP_POST_VARS['username'])) : '';
$username = substr(str_replace("\'", "'", $username), 0, 25);
$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';
$sql = "SELECT user_id, username, user_password, user_active, user_level
FROM " . USERS_TABLE . "
WHERE username = '" . str_replace("\'", "''", $username) . "'";Code: Alles auswählen
$username = isset($HTTP_POST_VARS['username']) ? trim(htmlspecialchars($HTTP_POST_VARS['username'])) : '';
$username = substr(str_replace("\\'", "'", $username), 0, 25);
$username = str_replace("'", "\\'", $username);
$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';
$sql = "SELECT user_id, username, user_password, user_active, user_level
FROM " . USERS_TABLE . "
WHERE username = '" . str_replace("\\'", "''", $username) . "'";Code: Alles auswählen
$user = substr(str_replace("\'", "'", $user), 0, 25);Code: Alles auswählen
$user = substr(str_replace("\\'", "'", $user), 0, 25);
$user = str_replace("'", "\\'", $user);