Loginsystem mit MySqlLib (von dodo)

    • VB.NET

    Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von da-kid.

      Loginsystem mit MySqlLib (von dodo)

      Hallo Community,
      Ich bin mich derzeit mit der MySQL Lib von dodo am Anfreunden und muss ihn dafür erstmal loben da ich mit dieser Lib nach ein wenig rumexperimentieren extrem gut zurecht komme.

      Da ich am anfang ein paar kleine schwiergikeiten hatte und diese nun nicht mehr habe, habe ich mir gedacht ich schreiibe mal ein kleines Loginsystem als Tutorial mittels dieser perfekten und auch guten Lib.

      Als erstes müssen wir uns die Lib (wenn nich schon geschen) runterladen (habe diese im Anhang angehängt).
      Nachdem wir uns diese Runtergeladen haben, müssen wir die php Datein die sich im Script-Files Ordner befinden, auf unseren Webspace hochladen.

      Nachdem wir diese Hochgelden haben, passen wir unsere Zugangsdaten zur Datenbank in der config.php Datei an.
      Diese Datei könnt ihr in den Ordner "config" finden.

      Dann gehts auch schon los.

      Wir legen uns eine neue Tabelle in unserer Datenbank an.
      Meine besteht aus 3 Spalten.
      1.: ID (Int,255,Auto_Increment,Primary Key)
      2.: Benutzername (Varchar,255)
      3.: Passwort (Varchar,255)

      Der PHP teil dazu sieht so aus:

      PHP-Quellcode

      1. CREATE TABLE `login` (
      2. `ID` INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
      3. `Benutzername` VARCHAR( 255 ) NOT NULL ,
      4. `Passwort` VARCHAR( 255 ) NOT NULL
      5. ) ENGINE = MYISAM ;


      Nachdem wir dieses gemacht haben, fangen wir auch schon in Visual Basic an unser System zu Programmieren.

      Wir benötigen 2 Formen.

      Form 1: Login
      Form 2: Registrieren

      Fangen wir mit der Login Form an:
      Doe fügen wir folgendes ein:
      2x Label (benutzername und Passwort)
      2 textboxen
      1 Button (Login)

      Dann machen wir einen Doppelklick auf den Button und schreiben ganz oben folgendes rein:

      VB.NET-Quellcode

      1. Imports MySqlLib3

      Damit Importieren wir die Lib in unser Programm.

      Nachdem wir dieses gemacht haben, schreiben wir unter Public Class Form1 :

      VB.NET-Quellcode

      1. Public db As New MySqlLib("http://deinedomain/query.php", True)


      Als nächstes geht es dem Button an den kragen.

      Doch geben wir folgenden Code ein:

      VB.NET-Quellcode

      1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      2. Dim lesen As MySqlLib.ResultCollection = db.Query("SELECT * FROM login WHERE Benutzername='" + Replace(TextBox1.Text, " ", "") + "' AND Passwort='" & Replace(TextBox2.Text, " ", "") & "'")
      3. If lesen.Row.Count = 1 Then
      4. MessageBox.Show("Login Erfolgreich")
      5. Me.Visible = False
      6. Form3.ShowDialog()
      7. Else
      8. MessageBox.Show("Bitte Registrieren")
      9. End If
      10. End Sub


      Das wäre dann unsere Loginform.

      Nun geht es weiter mit der Registrierform:
      Dort brauchen wir das gleiche wie in Loginform:
      2x Label und 2x textboxen und einen Button

      Der Aufbau ist der gleiche wie in der Loginform nur das sich der Code auf dem Button etwas ändert.

      Der Code für den Button sieht so aus:

      VB.NET-Quellcode

      1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      2. Dim lesen As MySqlLib.ResultCollection = db.Query("SELECT * FROM login WHERE Benutzername= '" + TextBox1.Text & "'")
      3. If lesen.Row.Count = 1 Then
      4. MessageBox.Show("Benutzer Bereits Vorhanden")
      5. Else
      6. db.Query("INSERT INTO login (`Benutzername`,`Passwort`) VALUES ('" & TextBox1.Text & "','" & TextBox2.Text & "')")
      7. MessageBox.Show("Erfolgreich Registriert")
      8. End If
      9. End Sub


      Wenn alles richtig gemacht wurde haben wir nun ein kleines aber feines Loginsystem mit Dodos MysqlLib auf die beine gestellt.
      Um das ganze noch sicherer zu machen, kann man ein MD5 Hash einbauen der das Passwort denn Verschlüßelt.

      Hier nochmal der ganze Code für beide Formen:

      Login Form:

      VB.NET-Quellcode

      1. Imports MySqlLib3
      2. Public Class Form1
      3. Public db As New MySqlLib("http://test.funkspiel-bos-funk.de/sql/query.php", True)
      4. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      5. Dim lesen As MySqlLib.ResultCollection = db.Query("SELECT * FROM login WHERE Benutzername='" + Replace(TextBox1.Text, " ", "") + "' AND Passwort='" & Replace(TextBox2.Text, " ", "") & "'")
      6. If lesen.Row.Count = 1 Then
      7. MessageBox.Show("Login Erfolgreich")
      8. Me.Visible = False
      9. Form3.ShowDialog()
      10. Else
      11. MessageBox.Show("Bitte Registrieren")
      12. End If
      13. End Sub
      14. End Class


      Und die Form zum Registrieren:

      VB.NET-Quellcode

      1. Imports MySqlLib3
      2. Public Class Form2
      3. Public db As New MySqlLib("http://test.funkspiel-bos-funk.de/sql/query.php", True)
      4. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      5. Dim lesen As MySqlLib.ResultCollection = db.Query("SELECT * FROM login WHERE Benutzername= '" + TextBox1.Text & "'")
      6. If lesen.Row.Count = 1 Then
      7. MessageBox.Show("Benutzer Bereits Vorhanden")
      8. Else
      9. db.Query("INSERT INTO login (`Benutzername`,`Passwort`) VALUES ('" & TextBox1.Text & "','" & TextBox2.Text & "')")
      10. MessageBox.Show("Erfolgreich Registriert")
      11. End If
      12. End Sub
      13. End Class


      Das wars auch schon mit dem Tutorial.
      Ich hoffe ihr habt es mehr oder weniger verstanden.

      Wenn ich noch was verbessern kan einfach schreiben bin für Kritik offen.

      MFG
      Patrick

      P.S.
      Die Lib ist wie Versprochen im Anhang
      Dateien
      • MySQL Lib.rar

        (144,6 kB, 531 mal heruntergeladen, zuletzt: )

      Hi

      Wollte mal nachfragen ob das ganze hier als Beispiel gedacht ist oder kann man das als Tutorial betrachten ?

      Habe vor zwei Tagen angefangen mich mit Visual Basic auseinander zu setzen und bin grad noch eher am nach schreiben als das ich selber genau wüsste was ich da mache.

      Ich wollte den post von oben mal nach schreiben da ich das Prinzip mit der Sql lib. schon sehr sehr gut finde, leider bin ich noch nicht so befangen mit der ganzen Materie und bekomme beim schreiben angezeigt, das diese 3 Wörter Fehler sein:


      - MySqlLib
      -MySqlLib.ResultCollection
      -Form3


      Quellcode

      1. Public Class Form1
      2. Public db As New MySqlLib("http://deinedomain/query.php", True)
      3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      4. Dim lesen As MySqlLib.ResultCollection = db.Query("SELECT * FROM login WHERE Benutzername='" + Replace(TextBox1.Text, " ", "") + "' AND Passwort='" & Replace(TextBox2.Text, " ", "") & "'")
      5. If lesen.Row.Count = 1 Then
      6. MessageBox.Show("Login Erfolgreich")
      7. Me.Visible = False
      8. Form3.ShowDialog()
      9. Else
      10. MessageBox.Show("Bitte Registrieren")
      11. End If
      12. End Sub
      13. End Class



      Wäre jemand so nett mir zu erklären warum das so ist.

      LG

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „itzhakStern“ ()

      Du musst die Lib A) Verweisen und B) Importieren

      Dann werden dir auch die 2 dingeder Lib nich als fehler angezeigt.

      Form3 is die Form auf die nach dem Erfolgreichen Login weitergeleitet werden soll

      Hi ich habe ein Problem damit und zwar kommt da immer:


      Das Konfigurationssystem konnte nicht initialisiert werden.


      Mein Code:

      VB.NET-Quellcode

      1. Imports MySqlLib3Public Class LoginForm Public db As New MySqlLib("http://localhost/query.php", True)
      2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Login.Click Dim lesen As MySqlLib.ResultCollection = db.Query("SELECT * FROM login WHERE Benutzername='" + Replace(TextBox1.Text, " ", "") + "' AND Passwort='" & Replace(TextBox2.Text, " ", "") & "'") If lesen.Row.Count = 1 Then MessageBox.Show("Login Erfolgreich") Me.Visible = False Form2.ShowDialog() Else MessageBox.Show("Bitte Registrieren") End If End Sub
      3. Private Sub Register_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Register.Click Form2.Show()End Sub
      4. Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged My.Settings.UsernameSave = TextBox1.Text My.Settings.Save() My.Settings.Reload()End Sub
      5. Private Sub Login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = My.Settings.UsernameSaveEnd SubEnd Class


      Fehlertext:

      Quellcode

      1. System.Configuration.ConfigurationErrorsException wurde nicht behandelt. BareMessage=Das Konfigurationssystem konnte nicht initialisiert werden. Line=0 Message=Das Konfigurationssystem konnte nicht initialisiert werden. Source=System.Configuration StackTrace: bei System.Configuration.ConfigurationManager.PrepareConfigSystem() bei System.Configuration.ConfigurationManager.GetSection(String sectionName) bei System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName) bei System.Diagnostics.DiagnosticsConfiguration.GetConfigSection() bei System.Diagnostics.DiagnosticsConfiguration.Initialize() bei System.Diagnostics.DiagnosticsConfiguration.get_Sources() bei System.Diagnostics.TraceSource.Initialize() bei System.Net.Logging.InitializeLogging() bei System.Net.Logging.get_On() bei System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) bei System.Net.WebRequest.Create(String requestUriString) bei .() bei MySqlLib3.MySqlLib.Query(String Command) bei WindowsApplication1.LoginForm.Button1_Click(Object sender, EventArgs e) in C:\Users\Artur\documents\visual studio 2010\Projects\UC Client\UC Client\LoginForm1.vb:Zeile 6. bei System.Windows.Forms.Control.OnClick(EventArgs e) bei System.Windows.Forms.Button.OnClick(EventArgs e) bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) bei System.Windows.Forms.Control.WndProc(Message& m) bei System.Windows.Forms.ButtonBase.WndProc(Message& m) bei System.Windows.Forms.Button.WndProc(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) bei WindowsApplication1.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81. bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) bei System.AppDomain.nExecuteAssembly(RuntimeAssembly assembly, String[] args) bei System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel) bei System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly() bei System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) bei System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext) bei System.Activator.CreateInstance(ActivationContext activationContext) bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() bei System.Threading.ThreadHelper.ThreadStart_Context(Object state) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ThreadHelper.ThreadStart() InnerException: System.Configuration.ConfigurationErrorsException BareMessage=Unbekannter Konfigurationsabschnitt "userSettings". Filename=C:\Users\Artur\AppData\Local\WindowsApplication1\UC_Client.vshost.exe_StrongName_3kyklky4p2v3chjtqyqatg3r1p3hfcwe\1.0.0.0\user.config Line=3 Message=Unbekannter Konfigurationsabschnitt "userSettings". (C:\Users\Artur\AppData\Local\WindowsApplication1\UC_Client.vshost.exe_StrongName_3kyklky4p2v3chjtqyqatg3r1p3hfcwe\1.0.0.0\user.config line 3) Source=System.Configuration StackTrace: bei System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) bei System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) bei System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors() bei System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e) InnerException:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

      Habe schon vieles Ausprobiert bezogen auf MySQL Login Systeme. Das hier gibt mir bis jetzt die beste rückmeldung :thumbsup:

      Sofern die Lib noch aktuell ist, frage ich einfach mal.

      Bekomme diese Fehlermeldung:

      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax
      to use near '\testname3426\' AND Passwort=\'testpw2352\'' at line 1


      Habe alles Exakt wie beschrieben gemacht.. in der DB finde ich auch nichts.
      Wäre cool wenn mir jemand hilft ODER eine alternative postet.
      Ich weis hier im Forum gibt es paar sourcecodes zu dem Thema, die haben aber so garnicht funktioniert -> Anscheinend auch bei anderen. Aber so schwer kann das doch nicht sein oder ?

      Danke im vorraus