PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VB.NET Datenbankauslesung



feaRRRR
18.07.2009, 17:59
Hallo,ich wollte mal fragen ob es möglich ist mit VB.net ein login script zu schreiben was daten zb aus einer webspell datenbank ausliest.

hab gehöhrt das es gehen soll. nur ich weiß leider nicht wie

Shini
18.07.2009, 18:29
Ich möchte darauf hinweisen das folgendes Tutorial nicht von mir ist und ich nicht für die Richtigkeit einstehen kann.. jedoch sollte es einem einen ungefairen überblick geben =)

WICHTIG:
==> ohost = funpic = Externer Zugriff untersagt.
jedoch muss die DB externen zugriff erlauben



Login + Registrierung ins Programm einbauen
Willkommen zu meinem ersten Tutorial

In diesem Tutorial werde ich euch zeigen wie einfach man ein Login + Registrierung ins eigene Programm einbauen kann.

Ihr braucht erstmal eine MySQL Datenbank die auch externe zugriffe erlaubt.

Dann fangen wir an :

1. Legt folgende Datenbank an :
http://forum.vb-paradise.de/wcf/icon/codeS.png MySQL-Abfrage(n)



DROP TABLE IF EXISTS `benutzer`;
CREATE TABLE `benutzer` (
`ID` int(5) NOT NULL auto_increment,
`Benutzername` varchar(255) default NULL,
`Passwort` varchar(255) default NULL,
`Email` varchar(255) default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; 2. Jetzt zum Programm :

1.MD5 Sicherung

Erstellt ein Modul mit folgendem Code :

http://forum.vb-paradise.de/wcf/icon/codeS.png Visual Basic Quellcode




Imports System.Security.Cryptography
Imports System.Text
Module md5

Public Function MD5StringHash(ByVal strString As String) As String
Dim MD5 As New MD5CryptoServiceProvider
Dim Data As Byte()
Dim Result As Byte()
Dim Res As String = ""
Dim Tmp As String = ""

Data = Encoding.ASCII.GetBytes(strString)
Result = MD5.ComputeHash(Data)
For i As Integer = 0 To Result.Length - 1
Tmp = Hex(Result(i))
If Len(Tmp) = 1 Then Tmp = "0" & Tmp
Res += Tmp
Next
Return Res
End Function

End Module

2. Login :
So kann die Form aussehen :
http://img3.imagebanana.com/img/t5mtwjqu/login.png (http://img3.imagebanana.com/)

Auf den Button "Login" legt ihr folgenden Code :

Und nicht vergessen ihr müsst Mysql für .NET installiert haben und

http://forum.vb-paradise.de/wcf/icon/codeS.png Visual Basic Quellcode

Imports MySql.Data.MySqlClient

importieren


http://forum.vb-paradise.de/wcf/icon/codeS.png Visual Basic Quellcode



Dim conn As MySqlConnection
conn = New MySqlConnection
conn.ConnectionString = "server=serverip;" _ 'Hier gibt ihr die Server IP ein
& "user id=benutzername;" _ 'Hier gibt ihr euren Benutzernamen ein
& "password=passwort;" _ 'Hier gibt ihr euer Passwort ein
& "database=datenbankname" 'Hier gibt ihr die Datenbank ein auf der die Tabelle benutzer liegt
Try
conn.Open() ' Verbindung öffnen
Catch myerror As MySqlException
MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString) ' Falls Fehler : Fehler anzeigen
End Try

Dim benutzer As String = MD5StringHash(txt_benutzer.Text)
Dim passwort As String = MD5StringHash(txt_passwort.Text)

Dim myAdapter As New MySqlDataAdapter
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
Dim myCommand As New MySqlCommand
myCommand.Connection = conn
myCommand.CommandText = SQLAbfrage

myAdapter.SelectCommand = myCommand
Dim myData As MySqlDataReader
myData = myCommand.ExecuteReader() ' Hier startet man die SQL Abfrage
If myData.HasRows Then ' Wenn die Abfrage Einträge enthält / also der Benutzer und das Passwort stimmen überein
MsgBox("Einloggen erfolgreich !")
conn.Close()
conn.Open()

Else 'Sonst wird angezeigt das die Daten falsch sind
MsgBox("Fehler Code 2 : Falsche Daten")
End If

3. Register
So kann die Registrierungs Form aussehen
http://img3.imagebanana.com/img/3vygouj5/register.png (http://img3.imagebanana.com/)

Auf den Button "Registrierung" legt ihr folgenden Code :

Und nicht vergessen ihr müsst Mysql für .NET installiert haben und http://forum.vb-paradise.de/wcf/icon/codeS.png Visual Basic Quellcode

1
Imports MySql.Data.MySqlClient

importieren

http://forum.vb-paradise.de/wcf/icon/codeS.png Visual Basic Quellcode



If txt_passwort.Text = txt_passwort_w.Text Then ' Prüft ob die Passwörter übereinstimmen
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
If txt_email.Text = txt_email_w.Text Then ' Wennn die Emails übereinstimmen dann Trage ein
Dim conn As MySqlConnection
conn = New MySqlConnection
conn.ConnectionString = "server=serverip;" _ 'Hier gibt ihr die Server IP ein
& "user id=benutzername;" _ 'Hier gibt ihr euren Benutzernamen ein
& "password=passwort;" _ 'Hier gibt ihr euer Passwort ein
& "database=datenbankname" 'Hier gibt ihr die Datenbank ein auf der die Tabelle benutzer liegt
Try
conn.Open() ' Verbindung öffnen

Catch myerror As MySqlException
MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString)
End Try

Dim myAdapter As New MySqlDataAdapter
Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE Benutzername='" + txt_benutzer.Text + "'" ' Erstmal eine SQL Abfrage die überprüft ob es den Benutzernamen schon gibt
Dim myCommand As New MySqlCommand
myCommand.Connection = conn
myCommand.CommandText = SQLAbfrage

myAdapter.SelectCommand = myCommand
Dim myData As MySqlDataReader
myData = myCommand.ExecuteReader() ' Abfrage starten

If myData.HasRows = 0 Then ' Wenn dieser Benutzername nicht existiert dann fang mit der Registrierung an
conn.Close()
conn.Open()
Dim registerfinal As New MySqlDataAdapter
Dim benutzer As String = MD5StringHash(txt_benutzer.Text)
Dim passwort As String = MD5StringHash(txt_passwort.Text)
myCommand.CommandText = "INSERT INTO benutzer(Benutzername, Passwort, Email)" _
& "VALUES('" & benutzer & "','" & passwort & "','" & txt_email.Text & "')"
myCommand.ExecuteNonQuery() ' SQL Abfrage starten und eintragen
MsgBox("Der Account mit dem Namen : " & txt_benutzer.Text & " wurde erfolgreich erstellt")
conn.Close()
Else
MsgBox("Dieser Benutzername existiert bereits")
End If
Else
MsgBox("Die eingegebenen Emails stimmen nicht über ein !")
End If
Else
MsgBox("Die eingegebenen E-Mails sind ungültig !")
End If
Else
MsgBox("Die eingegebenen Passwörter stimmen nicht überein")
End If




mfg Shini

Toxic222333
18.07.2009, 21:08
die links sind weg xD lol edit ma http://forum.vb-paradise.de/wcf/icon/codeS.png

feaRRRR
18.07.2009, 22:36
Erstmal danke für das tutorial, hat alles geklappt
nun zum problem nr 2
also
wenn der login erfolgreich war, sollte sich ein zweites programm öffnen

bzw ein neues programm im login system, wie soll das gehen?

hackerking
18.07.2009, 22:46
@shini du kannst auch den link zum tut reinpacken xD

http://forum.vb-paradise.de/allgemeines/sourcecode-austausch/20116-login-registrierung-ins-programm-einbauen/