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
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)
In dieser Datei werden wir auf deine MySQL- Datenbank zugreifen.
<?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)
Das $checkconnect kommt später noch zum Einsatz.
Abschnitt: 1.2 (Verbindung zur Tabelle aufbauen)
Das $checkdb kommt später noch zum Einsatz.
Also fügen wir noch die Errormeldungen ein, dazu brauchen wir $checkconnect und $checkdb
Abschnitt: 1.3 (Errormeldungen einfügen)
if($checkconnect == false){ echo 'Verbindnung zur Datenbank fehlgeschlagen !'; exit;}if($checkdb == false){ echo 'Verbindnung zur Tabelle fehlgeschlagen !'; exit;}
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)
also fügen wir mysqlconnect.php als Include in die index.php ein, dies geht so.
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)
Bsp: "http://www.DEINLINK.domain/?site=login" das bewirkt die Funktion, sowas geht man ja von Facebook oder anderen Professionellen Seiten.
<?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 site
echo '<meta http-equiv="refresh" content="0; URL=?site=site">'; = Hiermit Verlinken wir uns auf folgende Seite http://www.DEINLINK.domain/?site=site
content="0; URL=?site=site" = Nach 0 Sekunden (im content angegeben) sollen wir auf die URL weitergeleitet werden
Abschnitt: 2.2 (Session erstellen)
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.
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