NetVision-Technik

Zur?ck   NetVision-Technik > Forum > Programmierung > C / C++

C / C++ Hier findet ihr Code-Schnipsel zu C & C++

Antwort
 
Themen-Optionen Ansicht
Alt 15.03.2009, 21:56  
C# - Login (PHP, MySQL)
TrackerPolizei TrackerPolizei ist offline 15.03.2009, 21:56

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:&nbsp;<input type="text" name="username" value="Dein Benutzername.." /><br />
Passwort:&nbsp;<input type="password" name="password" /><br />
E-Mail:&nbsp;<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 accstrstring 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

Ge?ndert von TrackerPolizei (10.11.2010 um 20:53 Uhr).

 
Benutzerbild von TrackerPolizei
TrackerPolizei
Profi
Punkte: 15.522, Level: 80 Punkte: 15.522, Level: 80 Punkte: 15.522, Level: 80
Levelaufstieg: 35% Levelaufstieg: 35% Levelaufstieg: 35%
Aktivität: 25,0% Aktivität: 25,0% Aktivität: 25,0%
Letzte Erfolge
Artikel Benutzer besitzt 1x Profi Benutzer besitzt 1x Ideen-Spender Benutzer besitzt 1x Helfer
Registriert seit: 12.03.2008
Beitr?ge: 986
Abgegebene Danke: 21
Erhielt 1.079 Danke für 154 Beiträge
Downloads: 32
Uploads: 2
Nachrichten: 123
Hits: 47844
Mit Zitat antworten
Alt 16.03.2009, 20:33   #11
goterneme
Erfahrener Benutzer
Punkte: 9.229, Level: 64 Punkte: 9.229, Level: 64 Punkte: 9.229, Level: 64
Levelaufstieg: 60% Levelaufstieg: 60% Levelaufstieg: 60%
Aktivität: 0% Aktivität: 0% Aktivität: 0%
Letzte Erfolge
Artikel Benutzer besitzt 1x Anfänger Benutzer besitzt 1x Hilfe Level 1 Benutzer besitzt 1x Helfer Benutzer besitzt 1x Hilfe Level 2 Benutzer besitzt 1x Ideen-Spender
 
Benutzerbild von goterneme
 
Registriert seit: 26.10.2008
Beitr?ge: 467
Abgegebene Danke: 22
Erhielt 54 Danke für 9 Beiträge
Downloads: 8
Uploads: 0
Nachrichten: 76
Renommee-Modifikator:
512 goterneme sorgt für eine eindrucksvolle Atmosphäregoterneme sorgt für eine eindrucksvolle Atmosphäregoterneme sorgt für eine eindrucksvolle Atmosphäre
Standard

umständlich und nicht notwendig php bietet die ganze platte an funktionen (siehe php.net)

bzw. echtes c# ist dat nicht wirklich...
goterneme ist offline   Mit Zitat antworten Nach oben
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beitr?ge zu antworten.
Es ist Ihnen nicht erlaubt, Anh?nge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitr?ge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Template-Modifikationen durch TMS