logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Visual basic - SQL Sprawdzenie czy ip istnieje podczas rejestracji

witek2424 29 Sie 2014 13:39 1182 9
REKLAMA
  • #1 13917429
    witek2424
    Poziom 10  
    Posty: 55
    Witam podczas rejestracji sprawdzane jest czy login już istnieje w bazie jeśli tak to nie można się zarejestrować i trzeba wybrać inny login.
    Chcę też dodać wykrywanie ip aby uniknąć multikont.

    Jeśli login jest wolny i wszystkie dane są poprawne to w tym momencie następuje rejestracja ale jeśli w bazie istnieje już to samo ip z którego próbuje się zarejestrować osoba to powinien pojawić się msgbox że konto o takim ip istnieje i rejestracja nie powinna nastąpić.

    W bazie znajduje się kolumna "ip" i gdy użytkownik się zarejestruje zapisuje się ono tam.

    w TextBox1.Text wyświetla się aktualne ip




    Kod wygląda nastepująco.

        Public Sub create(ByVal sql As String)
    
            Try
    
                con.Open()
    
                Dim sqlStr As String = "SELECT COUNT(*) FROM `users` WHERE `login` = @uname"
                Dim cmd As New MySqlCommand(sqlStr, con)
                cmd.Parameters.AddWithValue("@uname", txtuser.Text)
                Dim rowCount As Int16 = Convert.ToInt32(cmd.ExecuteScalar())
    
    
                If rowCount <> 0 Then
                    MsgBox("Sorry, this user already exists!")
                    Return
                End If
    
                If rowCount = 0 Then
    
                End If
                With cmd
                    .Connection = con
                    .CommandText = sql
                    result = cmd.ExecuteNonQuery
    
                    If result = 0 Then
                        MsgBox("Registration failed!")
                    Else
                        MsgBox("You are now registered.")
                        Me.Close()
    
                    End If
    
                End With
            Catch ex As Exception
    
            End Try
            con.Close()
        End Sub
  • REKLAMA
  • #2 13917617
    PRL
    Poziom 41  
    Posty: 6961
    Pomógł: 953
    Ocena: 910
    Cytat:
    W bazie znajduje się kolumna "ip" i gdy użytkownik się zarejestruje zapisuje się ono tam.


    Tak samo w bazie znajduje się login.
    Użyj więc takiego samego sposobu sprawdzania IP, jak użyłeś do sprawdzenia loginu.
    Pomogłem? Kup mi kawę.
  • #3 13917715
    witek2424
    Poziom 10  
    Posty: 55
    PRL napisał:
    Cytat:
    W bazie znajduje się kolumna "ip" i gdy użytkownik się zarejestruje zapisuje się ono tam.


    Tak samo w bazie znajduje się login.
    Użyj więc takiego samego sposobu sprawdzania IP, jak użyłeś do sprawdzenia loginu.


    Sęk w tym że nie wiem jak to zrobić.
  • REKLAMA
  • #4 13917735
    PRL
    Poziom 41  
    Posty: 6961
    Pomógł: 953
    Ocena: 910
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Coś w tym stylu.

    Domyślam się, że kod który zamieściłeś polegał na zasadzie kopij/wklej.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #5 13917797
    witek2424
    Poziom 10  
    Posty: 55
    PRL napisał:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Coś w tym stylu.

    Domyślam się, że kod który zamieściłeś polegał na zasadzie kopij/wklej.


    to jest oczywiste aby odczytać ip z tabeli users ale to musi współgrać z wykrywaniem nazwy użytkownika.
  • #7 13918215
    rufek90
    Poziom 25  
    Posty: 463
    Pomógł: 106
    Ocena: 58
    Problem chyba rozwiązany, ale pamiętaj, że sprawdzanie ip przy rejestracji nie pomoże uniknąć multikont.
  • REKLAMA
  • #8 13918481
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    PRL napisał:
    Kod: SQL
    Zaloguj się, aby zobaczyć kod


    Raczej OR - autorowi chodziło by zarówno login jak i ip było unikalne - tj z jednego ip można założyć tylko jedno konto. Oczywiście sensowność/skuteczność takiego zabezpieczenia jest mocno dyskusyjna.
  • #9 13919333
    PRL
    Poziom 41  
    Posty: 6961
    Pomógł: 953
    Ocena: 910
    Cytat:
    Oczywiście sensowność/skuteczność takiego zabezpieczenia jest mocno dyskusyjna.


    Też się dziwię dlaczego autor chce sprawdzać IP. Ale tak chce...
    Pomogłem? Kup mi kawę.
  • #10 13919604
    witek2424
    Poziom 10  
    Posty: 55
    Zrobiłem sprawdzanie ip podczas logowania, jeśli więcej niż jedna osoba zaloguje się z tego samego ip to pokazuje mi w panelu admina nazwy tych użytkowników. Rzeczywiście podczas rejestracji jest to mało sensowne, można zamknąć.

Podsumowanie tematu

LABEL_AI_GENERATED
Podczas rejestracji użytkowników w systemie, autor chce dodać funkcjonalność sprawdzania, czy adres IP jest już zarejestrowany, aby uniknąć tworzenia wielu kont z tego samego IP. Użytkownicy sugerują, aby użyć podobnej logiki do sprawdzania loginu, tworząc zapytanie SQL, które zlicza konta na podstawie loginu i IP. Istnieją jednak wątpliwości co do skuteczności tego rozwiązania, ponieważ sprawdzanie IP może nie być wystarczające do zapobiegania multikontom. Autor ostatecznie zdecydował się na monitorowanie logowania, aby identyfikować użytkowników logujących się z tego samego IP.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA