Hallo und Herzlich Willkommen zur Hobbythek,
heute zeige ich euch, wie ihr mit C#
Ein Loginsystem + eine registration mit einer MySQL-Datenbank
zaubert.
Was benötigen wir?:
- Einen Webspace + MySQL-Datenbank
Ich empfehle
funpic,
ohost.
- Erfahrungen mit dem phpMyAdmin, und wie man
in funpic oder ohost oder auf eurem Hoster
auf ihn gelangt.
Schritt^1:
- MySQL-Datenbank erstellen, namen merken in unserem Fall
"testdatenbank".
- MySQL-Nutzer erstellen, namen merken in userem Fall
"testnutzer".
- MySQL-Password erstellen, pw merken in unserem Fall
"testpasswort".
Schritt^2:
Nun legt ihr in eurer Datenbank eine neue Tabelle an.
Dazu klicken wir im phpMyadmin links in der Liste auf unsere blaue Datenbank auf den Datenbanknamen, der ist blau hinterlegt.
Diese Tabelle nennt ihr "users" oder wie ihr wollt,
und gebt die Felderanzahl
5 ein.
Felder für "id", "username", "password", "email", "ip".
Natürlich könnt ihr noch weitere Felder ergänzen.
Schritt^3:
Ihr seid auf der nächsten Seite,
nun habe ich ein Bild für euch, wie ihr es einstellen müsst.
Anhang 2740
Falls das Bild nicht angezeigt wird,
gibt es hier eine Beschreibung was ich eingegeben habe.
Feld "id": Typ[INT], Länge/Set[8], Attribute[UNSIGNED], Extra[auto_increment].
Feld "username": Typ[TEXT], Länge/Set[20].
Feld "password": Typ[TEXT], Länge/Set[20].
Feld "email": Typ[TEXT], Länge/Set[20].
Feld "ip": TYP[VARCHAR], Länge/Set[30].
Tabellenformat: MYISAM.
Schritt^5:
Nun erstellen wir eine php-Datei wir nennen sie, sodass es sich professioneller anhört
"config.inc.php" oder "config.php" ich habe mich jedoch für
"config.inc.php" entschieden.
Inhalt der config.inc.php
PHP-Code:
<?php
// Database-Script by TP
$database_host = "localhost"; // Host der Datenbank
$database_name = "testdatenbank"; // Name deiner Datenbank
$database_user = "testnutzer"; // Name des Nutzers der Datenbank
$database_password = "testpasswort"; // Passwort des nutzers
// Wir haben nun eine Konfigurationsdatei erstellt, die alle Daten die wir für unseren MySQL-Login brauchen.
?>
Schritt^6:
Wir erstellen nun die register.html und die register_success.php.
register.html ist das Formular mit dem man sich registrieren kann,
register_success.php wird aufgerufen, wenn die Registration abgeschlossen ist.
Inhalt der register.html:
HTML-Code:
<!-- Register.html by TP -->
<!-- Hochgradig invalide, kein doctype usw, aber wayne -->
<html>
<head>
<title>Registrierung - Testprogramm</title>
</head>
<body>
<form action="register_success.php" method="post" name="register_form">
Nutzername: <input type="text" name="username" value="Dein Benutzername.." /><br />
Passwort: <input type="password" name="password" /><br />
E-Mail: <input type="text" name="email" /><br />
<input type="submit" name="submit" value="Registrieren" />
</form>
<!-- Eindeutige Namen der Felder sind das A und O -->
</body>
</html>
Inhalt der register_success.php:
PHP-Code:
<?php
include_once("config.inc.php"); // includet die config.inc.php
mysql_connect($database_host, $database_user, $database_password); // connectet zur mysql-db
mysql_select_db($database_name); // wählt die datenbank aus.
$username = $_POST['username']; // Holt unseren geposteten username
$password = md5($_POST['password']); // Holt das password und jagt es in einen md5.
$email = $_POST['email']; // holt die email
$ip = $_SERVER['REMOTE_ADDR']; // erstellt variable ip und weist ihr den wert der ip von dir zu.
$insert_query = "INSERT INTO users (username, password, email, ip) VALUES ('$username', '$password', '$email', '$ip')"; // erstellt eine neue variable inder unsere mysql-query gespeichert ist ( die mysql-query füllt die datenbank mit den relevanten daten. Die id generiert sich automatisch, erinnerst du dich? auto_increment. )
mysql_query($insert_query) or die(mysql_error()); // führt die query auf den mysql-server aus.
echo "Herzlichen Glückwunsch du bist registriert!";
?>
Schritt^7:
Wir brauchen eine login.html und eine login.php
die login.html wieder das Formular wo die Daten gesendet werden
die .php-Datei prüft natürlich wieder alles.
Inhalt der login.html:
HTML-Code:
<!-- loginscript by TP -->
<html>
<head>
<title>Login</title>
</head>
<body>
<form action="login.php" method="post" name="login_form">
Username: <input type="text" name="username" /><br />
Passwort: <input type="password" name="password" /><br />
</form>
</body>
</html>
Inhalt der login.php:
PHP-Code:
<?php
include_once("config.inc.php"); // includet konfigurationsdatei
mysql_connect($database_host, $database_user, $database_password); // verbindet sich zur datenbank
mysql_select_db($database_name); // wählt datenbank aus
$username = $_POST['username']; // postet nutzernamen
$password = md5($_POST['password']); // postet passwort und md5t dann.
$get_password = "SELECT password FROM users WHERE username = '$username'"; // unser query
$q = mysql_query($get_password);
$rw = mysql_fetch_object($q);
$pw_from_db = $rw->password; // unser passwort aus der datenbank
if($password == $pw_from_db) // if.
{
echo "gut, erfolgreich eingeloggt";
}
else
{
echo "verweigert du nap k0rb";
}
?>
Schritt^8:
Wir verwenden auf keinen Fall GET für den Login, sondern POST, damit nicht jedes Berufskiddie einen bruteforce schreibt der einfach nur WebClient.DownloadString verwendet, wir wollen's dann schon etwas komplizierter machen (NameValueCollection), jetzt kommt der Teil, wo C# im Spiel ist.
Natürlich ebenfalls kommentiert.
PHP-Code:
private void _login(string accstr, string pwdstr) // erstellt private methode
{
System.Collections.Specialized NameValueCollection _nv = new System.Collections.Specialized NameValueCollection(); // erstellt neue namevaluecollection
_nv.Add("username", accstr); // fügt ihr mit methode add daten hinzu.
_nv.Add("password", pwdstr);
byte[] b_arr = new System.Net.WebClient().UploadValues("deinserver.tld/login.php", "POST", _nv); // lädt daten auf die login.pgp mit method post hoch.
string encstr = Encoding.ASCII.GetString(b_arr); // enkodiert die daten aus dem byte-array.
if(encstr.Contains("erfolgreich")) // prüft ob erfolgreich.
{
MessageBox.Show("Zugriff gewährt!");
}
else
{
MessageBox.Show("Zugriff verweigert!");
}
}
Fertig!
Ihr könnt euch nun in der register.html registrieren und mit login.html einloggen.
Dieses Tutorial wurde von mir eigenhändig geschrieben kein Source wurde geklaut und verändert, ich bitte meine Arbeit zu berücksichtigen und konstruktive Kritik zu äußern
TrackerPolizei