Hallo Breadfisch,
ich möchte euch nun ein kleines Tutorial machen, über das erstellen eines Logins mit MySQL.
Wofür kann ich das benötigen ?
- User Control Panel
- Control Panel für den Admin
- Generell eine Erfahrung reicher ![biggrin :D](https://breadfish.de/wcf/images/smilies/emojione/1f606.png)
Was benötige ich dazu ?
- MySQL Datenbank - hier GRATIS
- MySQL basierendes Script
- Schreibprogramm (Textdokument, hat jeder normale Rechner auf dem PC), Empfehle aber Notepad ++
[align=center]Verzeichnis
1. MySQL-Verbindung aufbauen
2. index.php erstellen
So wenn du alles hast dann können wir anfangen.
Abschnitt: 1.0 (MySQL-Daten in Strings eintragen)
Als erstes erstellen wir eine Datei namens "mysqlconnect.php"
In dieser Datei werden wir auf deine MySQL- Datenbank zugreifen.
Im folgenden Teil geben wir nun die Erforderlichen Daten zum zugreifen an.
<?php$SQL_HOST = 'DEINE DB-IP';$SQL_USER = 'LOGINNAME';$SQL_PW = 'PASSWORT';$SQL_DB = 'TABELLE';?>
(Bitte in die ' ' eintragen und nicht entfernen)
$SQL_HOST = 'DEINE DB-IP'; = Deine IP für die Datenbank. Standartmäßig "localhost"
$SQL_USER = 'LOGINNAME'; = Dein Loginname, den du verwendest um auf die Datenbank zuzugreifen
$SQL_PW = 'PASSWORT'; = Dein Passwort, das du verwendest um auf die Datenbank zuzugreifen
$SQL_DB = 'TABELLE'; = Die Tabelle wo deine Accounts und weiteres drinliegen
Abschnitt: 1.1 (Verbindung zur Datenbank aufbauen)
Als nächtes erstellen wir die Verbindung zu Datenbank
$checkconnect = mysql_connect("$SQL_HOST", "$SQL_USER", "$SQL_PW");
So hiermit geben wir den Befehl zur Datenbank zuzugreifen, mit den eingegeben Daten wie wir bei Punkt 1.0 gemacht haben.
Das $checkconnect kommt später noch zum Einsatz.
Abschnitt: 1.2 (Verbindung zur Tabelle aufbauen)
Als nächtes erstellen wir die Verbindung zu Datenbank
$checkdb = mysql_select_db("$SQL_DB");
So hiermit geben wir den Befehl zur Tabelle zuzugreifen, mit den eingegeben Daten wie wir bei Punkt 1.0 gemacht haben.
Das $checkdb kommt später noch zum Einsatz.
so jetzt besteht theoretisch Verbindung, dennoch wissen wir nicht ob es geklappt hat oder nicht.
Also fügen wir noch die Errormeldungen ein, dazu brauchen wir $checkconnect und $checkdb
Abschnitt: 1.3 (Errormeldungen einfügen)
Als nächtes erstellen wir die Verbindung zu Datenbank
if($checkconnect == false){ echo 'Verbindnung zur Datenbank fehlgeschlagen !'; exit;}if($checkdb == false){ echo 'Verbindnung zur Tabelle fehlgeschlagen !'; exit;}
Wie man sieht ist es ähnlich wie mit der PAWN Sprache.
Da fragen wir ab ob $checkconnect == false ist, d.h. das die Datenbank nicht kontaktiert werden konnte, geben wir ein Text
mit echo ""; aus. das exit; heißt, das ab da das Script zu ende sein soll. Es würde sich ja nicht lohnen, wenn die Datenbank nicht funktioniert.
Abschnitt: 2.0 (mysqlconnect.php in die index.php einbringen)
So jetzt erstellen wir eine Datei namens "index.php", die öffnet sich automatik, wenn du auf deine Link gehst. (
http://www.DEINLINK.domain/)
Natürlich wollen wir ja auf die Datenbank zugreifen ohne alles zu wiederholen was wir im Abschitt 1 gemacht haben.
also fügen wir mysqlconnect.php als Include in die index.php ein, dies geht so.
<?php Include("mysqlconnect.php"); ?>
So das war es auch in dem Abschnitt, d.h wenn man auf die index.php zugreift, erstellen wir immer eine Verbindung zu Datenbank.
Abschnitt: 2.1 ($_GET einfügen)
Wofür ist dieser Befehl gut ?
Der Befehl wirkt dazu, das wir nicht edliche an Dateien erstellen müssen, und alles in der index.php stattfindet.
Bsp: "http://www.DEINLINK.domain/?site=login" das bewirkt die Funktion, sowas geht man ja von Facebook oder anderen Professionellen Seiten.
Genug geschrieben, jetzt bauen wir die Funktion ein.
<?php$seite = $_GET["site"];if(!isset ($seite)){ $seite = "site"; echo '<meta http-equiv="refresh" content="0; URL=?site=site">'; }?>
$seite = $_GET["site"]; = Wir erstellen eine Variable, wo die aktuelle Seite gespeichert wird.
if(!isset ($seite)) = Wir überprüfen ob die Variable
$seite nichts enthält. Sollte dies der Fall sein geschiet folgendes.
$seite = "site"; = Hier beschreiben wir die Variable
$seite mit folgendem Inhalt
siteecho '<meta http-equiv="refresh" content="0; URL=?site=site">'; = Hiermit Verlinken wir uns auf folgende Seite
http://www.DEINLINK.domain/?site=site
http-equiv="refresh" = Wir werden weitergeleitet
content="0; URL=?site=site" = Nach 0 Sekunden (im content angegeben) sollen wir auf die URL weitergeleitet werden
Abschnitt: 2.2 (Session erstellen)
So was wir noch benötigen sind Session`s
Dazu geben wir folgendes im Script ein. (Ganz oben)
<?php session_start(); ?>
Hiermit geben wir den Befehl, das wir die Session´s benutzen wollen.
Abschnitt: 2.3 (Loginformular erstellen)
[expander]Super habe jetzt soviel gemacht und sehe nichts auf meiner Seite, will der mich hänseln ?
Nein, will ich nicht. Das waren nur die Vorbereitungen. Jetzt geben wir der Seite was zu Wiedergeben.
Als erstellen wir ein bisschen HTML um der Seite was zu sehen zu geben.
<html>
<head>
<title>Seitenname</title>
</head>
<body>
</body>
</html>
Alles anzeigen
So wenn ich jetzt auf die Seite gehe sehe ich oben nur im Tabmenü "Seitenname", wenn dies so ist hast du alles richtig befolgt.
also fügen wir folgendes in den body ein (<body>)
<?php
if(!isset ($_SESSION['username']) && $seite == "site")
{
echo "<form action=\"?site=login\" method=\"post\">
<table>
<tr>
<td>Username</td>
<td><input name=\"bname\" type=\"text\"/></td>
</tr>
<tr>
<td>Password</td>
<td><input name=\"passwort\" type=\"password\"/></td>
</tr>
<tr>
<td>
<input type=\"submit\" value=\"Login\"/>
</td>
</tr>
</table>
</form>";
}
?>
Alles anzeigen
if(!isset ($_SESSION['username']) && $seite == "site") = Die Abfrage ob wir auf der GET-Seite "site" sind, und der SESSION "username" nicht vergeben ist.
<form action=\"?site=login\" method=\"post\"> = Bei bestätigung werden wir weitergeleitet auf die GET-Seite "login" und unsere Methode ist ein "POST", d.h. wir wollen unsere Eingabe and die GET-Seite "login" senden.
Danach erzeugen wir eine "else if" die uns zum Login führt.
else if(!isset ($_SESSION['username']) && $seite == "login")
{
$name = $_POST["bname"];
$pw = $_POST["passwort"];
$sql_query = "SELECT * FROM accounts WHERE Name LIKE '$name'";
$result = mysql_query($sql_query);
$menge = mysql_num_rows($result);
if($menge == 1)
{
$row = mysql_fetch_object($result);
if($row->Passwort == $pw)
{
$_SESSION["username"] = $name;
echo "Erfolgreich eingeloggt.<br /><a href=\"?site=site\"Startseite</a>";
}
else
{
echo "Das Passwort war falsch.<br /><a href=\"?site=site\"Startseite</a>";
}
}
else
{
echo "Benutzer exestiert nicht.<br /><a href=\"?site=site\"Startseite</a>";
}
}
Alles anzeigen
$name = $_POST["bname"]; = Der Name wo wir im Feld Username eingegeben haben wird in der Variable $name gespeichert.
$pw = $_POST["passwort"]; = Das Passwrot wo wir im Feld Passwort eingegeben haben wird in der Variable $pw gespeichert.
$sql_query = "SELECT * FROM accounts WHERE Name LIKE '$name'"; = Hiermit fragen in der Datenbank folgendes ab.
SELECT = Was abgefragt werden soll (* = alles in der Tabelle abfragen)
FROM = Wo die Accountdaten drinliegen, also wer der Benutzer zu finden ist. ("accounts" bitte ändern)
WHERE = Welche Spalte soll abgefragt werden, in dem Falle die Spalte Name
LIKE = Könnte man auch durch ein "=" ersetzen. Das Heißt die Spalte Name mit dem in der Variable $name gespeicherten User abfragen
$result = mysql_query($sql_query); = Hier wandeln wir den Wert um
$menge = mysql_num_rows($result); = Hier Zählen wir wieviele User es gibt mit dem Namen.
if($menge == 1) = Gibt es einen User mit dem Namen, werden wir weitergeleitet. Ist dies nicht fall erscheint die "else"
$row = mysql_fetch_object($result); = Hier wandeln wir die mysql_query erneut um, damit wir sie im PHP-Code benutzen können.
if($row->Passwort == $pw) = Hier fragen wir ab, ob das eingegebene Passwort mit dem in der Datenbank übereinstimmt
$_SESSION["username"] = $name; = Hier geben wir dem SESSION "username" den Wert, den wir in der Variable $name gespeichert haben.
Danach erzeugen wir eine weitere "else if"
else if(isset ($_SESSION['username']) && $seite == "site")
{
$name = $_SESSION['username'];
echo "Herzlich Willkommen $name";
}
DOWNLOADS:
- index.php
- mysqlconnect.php
Virustotal
- index.php
- mysqlconnect.php