PHP-Mitglieder-Registrierung mit MySQL
Webdesign Nachhilfe

PHP-Mitglieder-Registrierung mit MySQL

Ein Mitgliedersystem macht eine Website attraktiver, da so eine Interaktion stattfinden kann 

Der Klassiker unter den PHP-Scripten in Verbindung mit MySql ist wohl das Registrierungs- bzw. Login-System. Zuerst beginnen wir mit dem Registrierungs-Script. 

1. MySql-Tabelle erstellen 

Um so ein System mit Hilfe von MySql in die Website zu integrieren, wird logischer Weise eine MySql-Tabelle benötigt. Ich beschränke diese innerhalb des Beispiels auf die grundlegenden Elemente Email,Benutzername und Passwort. Die Tabelle sieht also wie folgt aus bzw. hat folgende Spalten mit den entsprechenden Eigenschaften: 

UserID   – Datentyp: INT – Auto_Increment  (=> Als Index und Primärschlüssel der Tabelle

UserName – Datentyp: VARCHAR (100)       (=> Benutzername des Users

Email    – Datentyp: VARCHAR (200)   (=> Email des Users

Password – Datentyp: VARCHAR (200)  (=> Passwort des Users als MD5

Als hilfreiches Tool bietet sich an, phpmyadmin beim Erstellen der Tabelle zu benutzen, um sich das SQL zu ersparen. Sollte kein phpmyadmin zur Verfügung stehen, benutzen Sie einfach folgendes SQL, das die Tabelle mit den entsprechenden Eigenschaften erstellt: 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `TBLUsers`
--
CREATE TABLE IF NOT EXISTS `TBLUsers` (
`UserID` int(11) NOT NULL auto_increment,
`UserName` varchar(100) NOT NULL,
`Email` varchar(200) NOT NULL,
`Password` varchar(200) NOT NULL,
PRIMARY KEY (`UserID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
 

  

2. Das HTML-Formular erstellen 

Um sich überhaupt registrieren zu können, benötigt der User ein Formular, über das er seine Daten übermitteln kann. Diese Formular besteht in diesem Beispiel aus einfach HTML-Input-Elementen, wobei auf jegliches Javascript verzichtet wird. Der Code für das Formular könnte wie folgt aussehen: 


<form name="regForm" id="regForm" method="post" action="" target="">
<h2>Registrierung</h2>
<p>
Email-Adresse<br />
<input type="text" name="emailIn" value="" />
</p>
<p>
Benutzername<br />
<input type="text" name="nameIn" value="" />
</p>
<p>
Passwort<br />
<input type="password" name="passIn" value="" />
</p>
<p>
<input type="submit" name="reg" value="registrieren" />
</p>
</form>

Das Formular sieht wie folgt aus: 

Registrierung

Email-Adresse

Benutzername

Passwort

 

 
 

3. der PHP-Code

Der PHP-Code ist sozusagen die Verbindung zwischen Formular-Daten und MySql-Tabelle. Um die Komplexität gering und Übersichtlichkeit groß zu halten, fügen wir den PHP-Code am Anfang des HTML-Dokuments, vor jeglichem HTML-Code, ein. Es wird also mit dem öffnenden PHP-Tag begonnen:

<?php

Als nächstes erfolgt die Prüfung, um das Formular abgeschickt wurde. Explizit wird dabei überprüft, ob der Button (namens “reg”) sendet bzw. gesetzt ist.

if (isset($_POST['reg']))
{

Wenn der Button gedrückt wurde, prüfen wir zunächst, ob alle Feld richtig ausgefüllt sind. Als Hilfsvariable legen wir uns die Variable error an, um später einen Fehlertext auszugeben. Der Einfachheit halber prüfe ich hier nur, ob die Textfelder gefüllt sind und nicht, ob die Eingaben plausibel sind, was insbesondere bei der Email-Adresse erfolgen sollte. Innerhalb von PHP wird mit dem Wert des name-Attributes auf die (Text-)Felder zugegriffen:


$error="";
if ($_POST['emailIn']=="")
{
$error='<p style="color:red">Bitte Email-Adresse eingeben!</p>';
}
if ($_POST['nameIn']=="")
{
$error .='<p style="color:red">Bitte Benutzernamen eingeben!</p>';
}
if ($_POST['passIn']=="")
{
$error .='<p style="color:red">Bitte Passwort eingeben!</p>';
}

Nun wird mit Hilfe unserer Hilfsvariablen error geprüft, ob Fehler entstanden sind oder nicht. Ist die Variable “leer” geblieben, sind keine Fehler aufgetreten und wir können die Eingaben in die Datenbank speichern. Auf die Verbindung zur Datenbank wird hier nicht näher eingegangen. Wer ein Erklärung braucht, klickt HIER. Als Besonderheit ist zu erwähnen, dass das Passwort mit Hilfe der PHP-Funktion md5() als MD5-Hash in die Datenbank gespeichert wird, damit es nicht auf den ersten Blick erkennbar ist. Des Weiteren wird geprüft, ob die Email-Adresse bereits vorhanden ist. Die Hilfsvariable error dient später dazu, auch die positive Anmeldungsbestätigung auszugeben.

if ($error=="")
{
$server = 'localhost'; // MySql Server
$username = 'XXXXXXX'; // MySql Username
$password = 'XXXXXXX' ; // MySql Passwort
$database = 'XXXXXXXX'; // MySql Datenbankname
$con = mysql_connect("$server","$username","$password");
if (!$con)
{
die('Konnte Verbindung nicht herstellen: ' . mysql_error());
}
mysql_select_db("$database", $con);
$query=mysql_query("SELECT * FROM TBLUser WHERE Email LIKE '".$_POST['emailIn']."'") or die (mysql_error());
if (mysql_num_rows($query)==0)
{
mysql_query("INSERT INTO TBLUser (UserName,Email,Password) VALUES ('".$_POST['nameIn']."','".$_POST['emailIn']."','".md5($_POST['passIn']."')") or die(mysql_error());
$error='<p style="color:green">Registrierung erfolgreich</p>';
}
else
{
$error = '<p style="color:red">Email-Adresse bereits registriert</p>';
}
}

Zu guter letzt wird folgender PHP-Code im HTML an die Stelle platziert, an der die Fehler- bzw. Bestätigungsausgabe erfolgen soll:

<?php if (isset($error)) echo $error; ?>

Hier nochmal der PHP-Code als ganzes, der über den HTML steht und für die Registrierung sorgt:

<?php
if (isset($_POST['reg']))
{
$error="";
if ($_POST['emailIn']=="")
{
$error='<p style="color:red">Bitte Email-Adresse eingeben!</p>';
}
if ($_POST['nameIn']=="")
{
$error .='<p style="color:red">Bitte Benutzernamen eingeben!</p>';
}
if ($_POST['passIn']=="")
{
$error .='<p style="color:red">Bitte Passwort eingeben!</p>';
}
if ($error=="")
{
$server = 'localhost'; // MySql Server
$username = 'XXXXXXX'; // MySql Username
$password = 'XXXXXXX' ; // MySql Passwort
$database = 'XXXXXXXX'; // MySql Datenbankname
$con = mysql_connect("$server","$username","$password");
if (!$con)
{
die('Konnte Verbindung nicht herstellen: ' . mysql_error());
}
mysql_select_db("$database", $con);
$query=mysql_query("SELECT * FROM TBLUser WHERE Email LIKE '".$_POST['emailIn']."'") or die (mysql_error());
if (mysql_num_rows($query)==0)
{
mysql_query("INSERT INTO TBLUser (UserName,Email,Password) VALUES ('".$_POST['nameIn']."','".$_POST['emailIn']."','".md5($_POST['passIn']."')") or die(mysql_error());
$error='<p style="color:green">Registrierung erfolgreich</p>';
}
else
{
$error = '<p style="color:red">Email-Adresse bereits registriert</p>';
}
}
}
?>
HTML-CODE...

Ich hoffe, dem ein oder anderen ist mit diesem kleinem HowTo ein wenig geholfen! Ich habe auch mal mit Hilfe solcher angefangen.

Eintrag kommentieren

You must be logged in to post a comment.