Archiwum - Bezpieczne logowanie - unikalny login
kevin_ - 19-02-2011, 13:23
a spróbuj:
Kod: |
if ( $userdata['username'] == $username )
na
if ( $userdata['username'] == $username AND $_GET['mode'] != 'register' )
|
strzelba - 25-02-2011, 18:33
hm wg mnie to wogole nie działa ta jaki i wcześniejsza wersja
no chyba ze w złym miejscu to wstawiam
robertrobson - 27-02-2011, 23:51
Czy w ogóle ta modyfikacja komuś działa? Ja to zainstalowałem i nie mogę się zalogować po nowym loginie a tylko po starym. Oczywiście opcja wyłączająca logowanie się po starym nicku jest odznaczona. Zapytanie do bazy wykonane. Pliki sprawdzałem kilkakrotnie i nie chce to działać...
Mam wątpliwości co do tego:
Kod: | #
#-----[ OPEN ]------------------------------------------
#
./includes/functions_validate.php
#
#-----[ ADD ]------------------------------------------
#
function validate_loginname($username)
{
global $db, $lang, $userdata;
// Niedozwolone znaki
if (strstr($username, '"') || strstr($username, '&') || strstr($username, chr(160)) || strstr($username, chr(173)) || strstr($username, ' ') || strstr(stripslashes($username), '\\') || strstr(stripslashes($username), '%') )
{
return array('error' => true, 'error_msg' => $lang['k_loginLang_10']);
}
$username = phpbb_clean_username($username);
$sql = "SELECT user_loginname
FROM " . USERS_TABLE . "
WHERE LOWER(user_loginname) = '" . strtolower($username) . "'";
if ($result = $db->sql_query($sql))
{
while ($row = $db->sql_fetchrow($result))
{
if (($userdata['session_logged_in'] && $row['user_loginname'] != $userdata['user_loginname']) || !$userdata['session_logged_in'])
{
$db->sql_freeresult($result);
return array('error' => true, 'error_msg' => $lang['k_loginLang_11']);
}
}
}
$db->sql_freeresult($result);
return array('error' => false, 'error_msg' => '');
#
#-----[ OPEN ]------------------------------------------
#
./templates/<styl>/overall_header.tpl
#
#-----[ ADD ]------------------------------------------
#
# Komunikat, jeśli ktoś NIE ma ustawionego loginu, wstaw gdziekolwiek
# np. po <!-- END switch_enable_board_msg -->
<!-- IF S_LOGIN_MOD -->
<br />
<span class="genmall" style="font-weight: bold; color: #ff0000; width: 100%;">{S_LOGIN_MOD_LANG}</span>
<!-- ENDIF -->
#
#-----[ OPEN ]------------------------------------------
#
./language/lang_polish/lang_admin.php
#
#-----[ ADD ]------------------------------------------
#
$lang['k_loginLang_3'] = 'Wł±cz modyfikację bezpiecznego logowania?';
$lang['k_loginLang_4'] = 'Zezwól na logowanie za pomoc± nazwy użytkownika';
$lang['k_loginLang_9'] = 'Zezwól na zmianę loginu podczas edycji profilu';
#
#-----[ OPEN ]------------------------------------------
#
./language/lang_polish/lang_main.php
#
#-----[ ADD ]------------------------------------------
#
$lang['k_loginLang_1'] = 'Loguj na nazwę użytkownika';
$lang['k_loginLang_2'] = 'Login';
$lang['k_loginLang_5'] = 'W systemie nie istnieje użytkownik: <b>%s</b><br /><em>Administrator wymaga logowania za pomoc± Loginów wpisanych podczas rejestracji (nie "Nazwa użytkownika")</em>';
$lang['k_loginLang_6'] = 'Adres email, który podał' . (($he) ? 'e' : 'a') . '¶ nie pasuje do zapisanego razem z baz± danych<br /><em>Przypominamy, że logujemy się za pomoc± Loginu, nie za pomoc± danych użytych w "Nazwa użytkownika"</em>';
$lang['k_loginLang_7'] = 'Witaj,<br />Administrator forum wymaga <a href="%s">edycji profilu</a> w celu wpisania <b>LOGINU</b> potrzebnego od dzi¶ do logowania.<br />Nie uaktualnienie profilu może zakończyć się problemami z logowaniem.';
$lang['k_loginLang_8'] = 'Nazwa użytkownika (do logowania)';
$lang['k_loginLang_10'] = 'Nazwa loginu nie może zawierać znaków takich jak <b>< > " & \ %</b> oraz podwójnej spacji';
$lang['k_loginLang_11'] = 'Ta nazwa loginu jest już zajęta';
} |
Nie pisze w tych kilku przypadkach dokładnie, w którym miejscu to dodać. Dodałem to na koniec każdego skryptu. Może dlatego coś nie trybi?
kevin_ - 28-02-2011, 13:57
takich duperelek w przypadku CSS/Langów (czyli znajdź coś, dodaj po) nie piszę bo to nie ma większego znaczenia gdzie ma to być - ważne aby było.
jeśli chodzi o sam całokształt moda - W sumie proponowałbym usunięcie tego moda z gotowych, a unikalne logowanie oprzeć na adresie e-mail - mniej szkód, a powinno bezproblemowo działać dla każdego.
robertrobson - 09-03-2011, 09:40
kevin_, Zmieniłem specjalnie nawet styl do forum i nic to nie pomogło. A propos logowania po email; może kolega przerobił by to aby w ten sposób działało?
qrka - 12-03-2011, 21:17
U mnie działa
[ Dodano: 12-03-2011, 21:20 ]
kevin_ napisał/a: | a spróbuj:
Kod: |
if ( $userdata['username'] == $username )
na
if ( $userdata['username'] == $username AND $_GET['mode'] != 'register' )
|
|
niestety dalej to samo
[ Dodano: 17-03-2011, 13:20 ]
Jest jeszcze jeden problem dla mniej "kumatych"
podczas logowania widac napis Nazwa użytkownika zamiast Login
i nick zamiast login
jest szansa to zmienic?
szukam gdzie to jest ale znalezc nie moge
[ Dodano: 17-03-2011, 13:20 ]
Jest jeszcze jeden problem dla mniej "kumatych"
podczas logowania widac napis Nazwa użytkownika zamiast Login
i nick zamiast login
jest szansa to zmienic?
szukam gdzie to jest ale znalezc nie moge
mr.czikopl - 26-07-2011, 12:48
co teraz zrobić? nie mogę się zalogować na admina, pomocy
[ Dodano: 26-07-2011, 13:49 ]
W systemie nie istnieje użytkownik: xxx
i jak teraz zalogować sie na admina?
czy ludzie beda musieli robic nowe konta ?
kevin_ - 26-07-2011, 18:35
Proszę o wycofanie tej tej modyfikacji z listy. Większy sens tej modyfikacji byłby, gdybyśmy logowali się za pomocą adres e-mail, który jest już unikalny w bazie - więc zbędne jest tworzenie/mieszanie w plikach/bazie. Dodatkowo można takie pole rozbić na dwa inputy (email | @ | domena - powinno również pomóc w zabezpieczeniu przed botami na krótszą metę, aż złamią oczywiście )
Jeśli chodzi o przypadek mr.czikopl. Wejdź do phpMyAdmina i wykonaj takie zapytania:
Kod: |
update phpbb_config set config_value = '0' where config_name = ''securelogin_enable';
|
później wejdź do folderu cache (na ftp) i usuń plik board_config - niech na nowo Ci się utworzy i załaduje nowe ustawienia. Będziesz mógł zalogować się do ACP.
pozdro
Ciampel - 03-02-2012, 18:19
dodałem wszystko jak w instrukcji, gdy chce wejść do PA wychodzi błąd
Kod: |
Error in obtaining userdata
DEBUG MODE
SQL Error : 1054 Nieznana kolumna 'user_loginname' w field list
SELECT user_id, user_loginname, username, user_password, user_email, user_active, user_actkey, user_lastvisit, user_level, user_badlogin, user_blocktime, user_email, user_lang, user_timezone FROM phpbb_users WHERE username = 'Ciampel'
Line : 214
File : login.php
Jeśli nie potrafisz znaleźć rozwiązania tego problemu,
możesz spróbować poszukać, lub zadać pytanie na forum: http://www.przemo.org/phpBB2/
|
Majkelo - 03-02-2012, 18:19
Nie wykonałeś zapytania SQL.
Ciampel - 03-02-2012, 18:21
wykasowałem plik board_config.php
[ Dodano: 03-02-2012, 19:18 ]
po zapytaniu wyskoczyło takie cos
Kod: | #1064 - Something is wrong in your syntax obok 'securelogin_enable'' w linii 1 |
[ Dodano: 03-02-2012, 19:30 ]
był tam mały błąd w kodzie co kolega wyżej napisał ale po wykonaniu zapytanie wyszło
Zmodyfikowanych rekordów: 0. ( Wykonanie zapytania trwało 0.0002 sekund(y) )
|
|
|