Zum Inhalt springen
Der Guide für ein smartes Leben.
So gewinnen Sie neue User

Teil 6: Identitätsmanagement und Authentifizierung; OpenID

Autoren: Redaktion pcmagazin und Anna Kobylinska • 21.8.2009 • ca. 2:05 Min

Diese Daten werden anschließend wie folgt ausgewertet:...

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
Der Benutzer erteilt seine Zustimmung, bei der betreffenden Webseite angemeldet zu werden.
© Archiv