Login + Registrierung ins Programm einbauen

    • VB.NET

    Es gibt 681 Antworten in diesem Thema. Der letzte Beitrag () ist von Higlav.

      Wie bau ich das denn nun ein?
      Also das nur die Eingeloggten Clienten an den Server etwas senden könnten?
      Und funktioniert das eig auch für VB.Net? Bei mir kommen da viele fehler weiß jetzt nicht ob das daran liegt, eig nein denn ich hab Visual Basic Express 2008 das kann doch alles oder?

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

      also erstmal großes lob!
      Der Code ist wirklich sauber und 1A :D
      Ich habs obwohl ich anfänger bin hinbekommen den code soweit auch gerade zu biegen das ich keine fehler mehr drinnen habe.

      Aber ich hab dennoch ein winzig kleines problem.
      Die Datenbank selber!

      Ich hab mir eine bei db4free.net erstellt, diese sollen nach eigener aussage anfragen von außerhalb zu lassen aber das geht nicht...
      Das Prg behauptet ständig das dies nicht der fall ist und keine verbindung hergestellt werden kann...

      Hat jemand eine idee, bzw. vlt der autor selber?


      EDIT: gelöst :D funzt einwandfrei jetzt, der autor geht definitiv ins danke mit rein

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

      VB.NET-Quellcode

      1. Fehler 4 "MySqlException" ist im Namespace "MySql.Data.MySqlClient" nicht eindeutig.
      2. Fehler 7 "MySqlDataReader" ist im Namespace "MySql.Data.MySqlClient" nicht eindeutig.
      3. Fehler 5 "MySqlDataAdapter" ist im Namespace "MySql.Data.MySqlClient" nicht eindeutig.
      4. Fehler 2 "MySqlConnection" ist im Namespace "MySql.Data.MySqlClient" nicht eindeutig.
      5. Fehler 3 "MySqlConnection" ist im Namespace "MySql.Data.MySqlClient" nicht eindeutig.
      6. Fehler 6 "MySqlCommand" ist im Namespace "MySql.Data.MySqlClient" nicht eindeutig.

      DIe Fehler kommen bei Visual Studio 2008 Express bei genau dem text wie er im ersten Post steht. Was soll ich tun?
      Hallo
      Ich muss echt sagen, das ist ein klasse Code, bin vollkommend zufrieden,
      allerdings habe ich eine frage, kann man diesen noch mit eine Edit Funktion austatten?

      Diese fehlt mir leider, und weil meine Programmier Kenntnisse noch nicht im Profi bereich liegen, habe ich keine ahnung wie man diese schreibt.

      Ich habe mir vorgestellt das man mit dem richtigen Passwort den Eintrag ändern kann der zu diesem Passwort auch gehört, die frage ist, ob man das so überhaupt umsetzen kann,
      MFG
      LEON
      _______________________________________________
      Entweder man ist Teil der Lösung oder Teil des Problems.
      Danke für die info und den code :)

      Was meinst du im Code Neuer Wert?
      wie kann ich den eintrag abfragen lassen ob überhaupt vorhanden,
      ( Ich sehe Tabellenname) da könnte man eine Textbox einbauen diese dann den wert sucht, am besten das Passwort, und dann erst anzeigt.

      Das problem ist die zuordnung, wie man das am sichersten machen könnte?

      PS. ich habe mir überlegt vieleicht eine Abfrage mit einzubauen ob Account noch aktiv ist oder bereits Deaktiviert,
      wenn Aktiv, Zugang okay, und bei Inaktiv Verweigert, weil so konnte man die eingetragenen Benutzer auch sperren, ohne Sie zu löschen :)

      Muss nur raus bekommen wie man das macht...
      MFG
      LEON
      _______________________________________________
      Entweder man ist Teil der Lösung oder Teil des Problems.
      Hallo Eminem,

      du kannst fast genauso wie beim Code von Rokky die einträge auslesen:

      VB.NET-Quellcode

      1. Dim conn As MySqlConnection
      2. conn = New MySqlConnection
      3. conn.ConnectionString = "server=IP;" _
      4. & "user id=User;" _
      5. & "password=PW;" _
      6. & "database=Datenbank"
      7. conn.Open() ' Verbindung öffnen
      8. Dim Benutzer As String = MD5StringHash(My.Settings.User_name)
      9. Dim myAdapter As New MySqlDataAdapter
      10. Dim SQLAbfrage As String = "SELECT aktivität FROM Datenbank WHERE Benutzername='*name vom Benutzer*'" ' aktivität soll die splate darstellen, in der steht ob man aktiv oder inaktiv ist. Datenbank muss durch den Datenbanknamen ersetzt werden. Benutzernamen brauchst du um das für den assenden benutzer auszulesen
      11. Dim myCommand As New MySqlCommand
      12. myCommand.Connection = conn
      13. myCommand.CommandText = SQLAbfrage
      14. myAdapter.SelectCommand = myCommand
      15. Dim myData As MySqlDataReader
      16. myData = myCommand.ExecuteReader()
      17. Try
      18. If myData.HasRows Then
      19. myData.Read()
      20. MsgBox (myData.Item("aktivität").ToString) 'bei "aktivität" wird die spalte angegeben aus der der inhalt angezeigt werden soll
      21. End If
      22. Catch ex As MySqlException
      23. MsgBox(ex.Message)
      24. End Try
      hmm also der Code den ich bis jetz hatte ging aber ich hatte alles in einer Form warum geht es jetz nicht mehr mit 2 Formen?

      Form1:

      VB.NET-Quellcode

      1. Imports MySql.Data.MySqlClient
      2. Public Class Form1
      3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      4. Dim conn As MySqlConnection
      5. conn = New MySqlConnection
      6. conn.ConnectionString = "server=82.103.138.122;" & "user id=;" & "password=;" & "database=emailfox"
      7. Try
      8. conn.Open() ' Verbindung öffnen
      9. Catch myerror As MySqlException
      10. MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString) ' Falls Fehler : Fehler anzeigen
      11. End Try
      12. Dim benutzer As String = (txt_benutzer.Text)
      13. Dim passwort As String = MD5StringHash(txt_passwort.Text)
      14. Dim myAdapter As New MySqlDataAdapter
      15. Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE Benutzername='" + Replace(benutzer, " ", "") + "' AND Passwort='" & Replace(passwort, " ", "") & "'" ' Das ist die Abfrage welche Prüft ob der Account existiert.Die txt_benutzer ist die Textbox in der der Benutzername eingeben wird und txt_passwort bekommt das Passwort
      16. Dim myCommand As New MySqlCommand
      17. myCommand.Connection = conn
      18. myCommand.CommandText = SQLAbfrage
      19. myAdapter.SelectCommand = myCommand
      20. Dim myData As MySqlDataReader
      21. myData = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage
      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. Else 'Sonst wird angezeigt das die Daten falsch sind
      27. MsgBox("Error code 2: Incorrect Data", 16, "Error !")
      28. End If
      29. End Sub
      30. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      31. Form2.Show()
      32. End Sub
      33. End Class


      Form2:

      VB.NET-Quellcode

      1. Imports MySql.Data.MySqlClient
      2. Public Class Form2
      3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
      4. If txt_password_reg.Text = txt_password_w.Text Then ' Prüft ob die Passwörter übereinstimmen
      5. If txt_email.Text.Contains("@") And txt_email_w.Text.Contains("@") Then ' Prüft ob die E-Mails ein @ enthalten.Damit wird geschaut ob die Email gültig ist
      6. If txt_email.Text = txt_email_w.Text Then ' Wennn die Emails übereinstimmen dann Trage ein
      7. Dim conn As MySqlConnection
      8. conn = New MySqlConnection
      9. conn.ConnectionString = "server=82.103.138.122;" & "user id=;" & "password=;" & "database=emailfox"
      10. Try
      11. conn.Open() ' Verbindung öffnen
      12. Catch myerror As MySqlException
      13. MsgBox("No connection to the database : " & myerror.Message.ToString)
      14. End Try
      15. Dim myAdapter As New MySqlDataAdapter
      16. Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE Benutzername='" + txt_user.Text + "'" ' Erstmal eine SQL Abfrage die überprüft ob es den Benutzernamen schon gibt
      17. Dim myCommand As New MySqlCommand
      18. myCommand.Connection = conn
      19. myCommand.CommandText = SQLAbfrage
      20. myAdapter.SelectCommand = myCommand
      21. Dim myData As MySqlDataReader
      22. myData = myCommand.ExecuteReader() ' Abfrage starten
      23. If myData.HasRows = 0 Then ' Wenn dieser Benutzername nicht existiert dann fang mit der Registrierung an
      24. conn.Close()
      25. conn.Open()
      26. Dim registerfinal As New MySqlDataAdapter
      27. Dim user As String = (txt_user.Text)
      28. Dim pass As String = MD5StringHash(txt_password_reg.Text)
      29. myCommand.CommandText = "INSERT INTO benutzer(Benutzername, Passwort, Email)" _
      30. & "VALUES('" & user & "','" & pass & "','" & txt_email.Text & "')"
      31. myCommand.ExecuteNonQuery() ' SQL Abfrage starten und eintragen
      32. MsgBox("The account with the name : " & txt_user.Text & " was successfully created", 0, "MySQL new registration Successfully !")
      33. conn.Close()
      34. Else
      35. MsgBox("This user name already exists !", 16, "Error!")
      36. End If
      37. Else
      38. MsgBox("The emails entered do not match !", 16, "Error!")
      39. End If
      40. Else
      41. MsgBox("The entered email are invalid !", 16, "Error!")
      42. End If
      43. Else
      44. MsgBox("The entered passwords do not match !", 16, "Error!")
      45. End If
      46. End Sub
      47. End Class


      Mein Problem ist jetz das wenn ich den register button auf der 2. Form drücke einfach gar nichts passiert und der Name von dem button ist auch 100% Button1. Warum geht es nicht? Passwörter natürlich rauseditiert bin ja nicht blöd^^
      Bilder
      • mysql_error.jpg

        91,26 kB, 1.024×768, 212 mal angesehen
      Hi Snade

      Versuche mal ein ; bei
      conn.ConnectionString = "server=IPADRESSE;" & "user id=BENUTZERNAME;" & "password=PASSWORT;" & "database=DATENBANK"
      der fehlt bei database=DATENBANK; <<, bei mir war das auch so und lag am ;


      Also so:

      VB.NET-Quellcode

      1. conn.ConnectionString = "server=IPADRESSE;" & "user id=BENUTZERNAME;" & "password=PASSWORT;" & "database=DATENBANK;"


      Oder hast du den Button nicht beglegt?
      MFG
      LEON
      _______________________________________________
      Entweder man ist Teil der Lösung oder Teil des Problems.

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

      Was meinst du mit "nicht belegt?"

      Das mit der ";" am ende hat auch nichts gebracht. Beim Login gehts ja ich geb z.B. blablablab ein dann steht da Falsche Daten aber beim 2. Button kommt gar nichts.
      EDIT1: Ich nehm alles zurück ich bin Blöd xDD

      Hab am Ende vom Button Event das Button.Click vergessen :cursing: