So gewinnen Sie neue User

Teil 6: Identitätsmanagement und Authentifizierung; OpenID

Diese Daten werden anschließend wie folgt ausgewertet:

if (isset($data['email'])) {

Falls die E-Mail-Adresse bekannt ist,wird geprüft, ob der Benutzer bereits einen Benutzeraccount im System besitzt. Hierzu wird eine Verbindung mit der Datenbank aufgebaut:

$conn = mysql_connect('localhost',
'user', 'pass') or die('FEHLER: Verbindungsaufbau zum Server fehlgeschlagen');
mysql_select_db('test') or die();

Nach dem erfolgreichen Verbindungsaufbau folgt die MySQL-Datenbankabfrage:

$result = mysql_query("SELECT
DISTINCT COUNT(*) FROM users WHERE email = '" . $data['email'] . "'") or die();
$row = mysql_fetch_array($result);
if ($row[0] == 1) {

Wurde ein Eintrag für die E-Mail-Adresse gefunden, handelt es sich um einen wiederkehrenden Benutzer, den wir nun namentlich begrüßen können:

$newUser = false;
echo 'Schön, Sie wieder willkommen
zu heißen, ' . $data['email'];
exit();
}
else {

Ist die E-Mail-Adresse unbekannt, können wir getrost annehmen, dass wir es hier mit einem neuen Benutzer zu tun haben:

$newUser = true;
}

Die Datenbankverbindung kann nun beendet werden.

mysql_free_result($result);
mysql_close($conn);
}
else {

Ließ sich die E-Mail-Adresse des Benutzers nicht ermitteln, müssen wir annehmen, dass wir es mit einem neuen Besucher zu tun haben:

$newUser = true;
}
} else {
$_SESSION['OPENID_AUTH'] = false;
die ('Der Zugriff auf diese Seite
ist Ihnen nicht gestattet! Bitte melden Sie sich (erneut) an.');
}

Falls der Benutzer noch keine E-Mail-Adresse im System hat oder noch keine E-Mail-Adresse dem Profil entnommen werden konnte, nehmen wir an, dass es sich um einen neuen Benutzer handelt und dieser registriert werden möchte. Hierzu wird das Formular mit Profildaten des Benutzers ausgefüllt:

if ($newUser == true) {
?><head><title>Neuen Benutzeraccount
erstellen</title></head><body><h2>Registrierungsformular</h2><form method="post" action=
"register.php">
Name: <br/><input type="text" name="name" value=
"<?php echo @$data['fullname']; ?>" /><p />
E-Mail-Adresse: <br/><input type="text" name="email"
value="<?php echo @$data['email']; ?>" /><p />
Geburtsdatum (JJJJ-MM-TT): <br/><input type="text" name="dob" value=
"<?php echo @$data['dob']; ?>" /><p /><input type="submit" name="submit"
value="Registrieren" /></form></body></html><?php
}
?>

Lokal vs. Datenbank

Die vorigen Beispiele nutzen zum Speichern von OpenID-Daten im Dateisystem die PHP OpenID-Bibliotheksklasse. Wer stattdessen lieber MySQL, PostgreSQL oder SQLite einspannen möchte, muss das Auth_OpenID_FileStore-Objekt durch das Auth_OpenID_MySQLStore-, das Auth_OpenID_PostgreSQLStore- beziehungsweise das Auth_OpenID_SQLiteStore-Objekt ersetzen. Der folgende Quelltext illustriert dies am Beispiel der MySQL-Datenbank.

Identitätsmanagement und Authentifizierung

© Archiv

Der Benutzer erteilt seine Zustimmung, bei der betreffenden Webseite angemeldet zu werden.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…