Problem mit dem Login & UPDATE Mysql

  • Allgemein

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von high152.

    Problem mit dem Login & UPDATE Mysql

    SQL-Abfrage

    1. Dim myCommand As New MySqlCommand
    2. myCommand.Connection = conn
    3. myCommand.CommandText = SQLAbfrage
    4. myAdapter.SelectCommand = myCommand
    5. Dim myData As MySqlDataReader
    6. myData = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage
    7. myCommand.CommandText = "SELECT Email FROM benutzer WHERE Benutzername = '" + Replace(benutzer, " ", "")
    8. Dim cmd As New SqlCommand()
    9. Do While myData.Read()
    10. Label1.Text = CStr(myData("Email"))
    11. Loop
    12. If Label1.Text = "0" Then
    13. myCommand.CommandText = "UPDATE benutzer SET Email ='" & (TextBox3.Text) & "' WHERE Benutzername='" & benutzer & "'"
    14. MsgBox(" HWID Angelegt , du kannst den Bot nur noch auf diesem Rechner mit diesen Benutzerdaten benutzen ", MsgBoxStyle.Information)
    15. Else
    16. If TextBox3.Text = Label1.Text Then
    17. Form2.Show()
    18. Else
    19. MsgBox("Gespeicherte HWID stimmt nicht mit dem Rechnerüberein. \n Skype : Puma011", MsgBoxStyle.Critical)
    20. End If
    21. End If
    22. If myData.HasRows Then ' Wenn die Abfrage Einträge enthält / also der Benutzer und das Passwort stimmen überein
    23. MsgBox("Einloggen erfolgreich !")
    24. conn.Close()
    25. conn.Open()
    26. myData.Close()
    27. Else 'Sonst wird angezeigt das die Daten falsch sind
    28. MsgBox("Fehler Code 2 Falsche Daten")
    29. End If



    Das Email , ist eigentlich das HWID , blos ich habs noch nicht changet.

    Mein Problem ist das dieser teil

    If Label1.Text = "0" Then
    myCommand.CommandText = "UPDATE
    benutzer SET Email ='" & (TextBox3.Text) & "' WHERE
    Benutzername='" & benutzer & "'"
    Nicht funktioniert es wird nicht geupdtet , in der Dtatenbank steht bei Email eien 0

    Und noch ein Problem ist wen ich mich einloge mitdem 1 Acc dan steht da login erfolgreich , wen ich das aber mit dem 2ten machen steht da als falsche daten o.o
    myData = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage <==== das is korrekt
    myCommand.CommandText = "SELECT Email FROM benutzer WHERE Benutzername = '" + Replace(benutzer, " ", "")

    Aber wie soll der Query bzw. Command ausgeführt werden, wenn er erst nach der SQL Abfrage gesetzt wird??
    Auch wenn ich jetzt etwas vom Thema abweiche:

    Du verwendest den Code zum Einloggen für ein Programm?
    Also ich denke mal kaum, dass die DB auf dem Rechner des Benutzers liegt, du verbindest also direkt zum SQL-Server?

    Aber egal wo die DB liegt, sie ist nicht nur anfällig gegen SQL Injections, da könnte jemand entweder neue Benutzer erstellen oder die Datenbank komplett löschen.

    Schau dir mal das an:
    [VB 2010] Login/Registrierung über PHP mit MySql
    Dado Danke erstmals

    PHP-Quellcode

    1. Try
    2. conn.Open() ' Verbindung öffnen
    3. Catch myerror As MySqlException
    4. MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString) ' Falls Fehler : Fehler anzeigen
    5. End Try
    6. 'Dim benutzer As String = MD5StringHash(txt_benutzer.Text)
    7. 'Dim passwort As String = MD5StringHash(txt_passwort.Text)
    8. Dim benutzer As String = (TextBox1.Text)
    9. Dim passwort As String = (TextBox1.Text)
    10. Dim SQLAbfrage As String = "UPDATE benutzer SET Email ='" & (TextBox3.Text) & "' WHERE Benutzername='" & benutzer & "'"
    11. Dim myAdapter As New MySqlDataAdapter
    12. Dim myCommand As New MySqlCommand
    13. myCommand.Connection = conn
    14. 'myCommand.CommandText = SQLAbfrage
    15. myAdapter.SelectCommand = myCommand
    16. If Label1.Text = "0" Then
    17. MsgBox(" HWID Angelegt , du kannst den Bot nur noch auf diesem Rechner mit diesen Benutzerdaten benutzen. Starten sie das Program von neu. ", MsgBoxStyle.Information)
    18. myCommand.CommandText = SQLAbfrage
    19. Else
    20. If TextBox3.Text = Label1.Text Then
    21. Form2.Show()
    22. Else
    23. MsgBox("Gespeicherte HWID stimmt nicht mit dem Rechner überein. Skype : Puma011", MsgBoxStyle.Critical)
    24. End If
    25. End If
    26. Dim myDatAa As MySqlDataReader
    27. myDatAa = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage
    28. If myDatAa.HasRows Then ' Wenn die Abfrage Einträge enthält / also der Benutzer und das Passwort stimmen überein
    29. ' MsgBox("Einloggen erfolgreich !")
    30. conn.Close()
    31. conn.Open()
    32. myData.Close()
    33. Else 'Sonst wird angezeigt das die Daten falsch sind
    34. ' MsgBox("Einloggen erfolgreich !")
    35. conn.Close()
    36. conn.Open()
    37. myData.Close()
    38. ' Me.Close()
    39. End If
    40. End Sub

    Ein Problem hab ich trotzdemnoch " myDatAa = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage "
    Kriege ich immer den Error "The CommandText property has not been properly initialized"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „popel“ ()

    VB.NET-Quellcode

    1. Using SqlConnection As New SQLiteConnection
    2. SqlConnection.ConnectionString = "Data Source=" & DatabasePath & ";"
    3. Dim SqlCommand = SqlConnection.CreateCommand
    4. SqlCommand.CommandText = SQLAbfrage
    5. SqlConnection.Open()
    6. Dim SqlReader = SqlCommand.ExecuteReader()
    7. 'Hier dann deine Abfrage rein
    8. End Using



    Aber ich kann dir sagen, dass das nichts wird wenn du die Grundlagen nicht beherrschst, das sieht wie gesagt nach zusammenkopiert und unsicher aus, wenn du dann die Fehlernachricht nicht richtig deuten kannst bestätigt es das nochmal.