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

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".