#1019 Add email field to web integration sample
This commit is contained in:
parent
cc7deb64c8
commit
aa64f96466
@ -54,16 +54,18 @@ abstract class AuthMeController {
|
|||||||
*
|
*
|
||||||
* @param string $username the username to register
|
* @param string $username the username to register
|
||||||
* @param string $password the password to associate to the user
|
* @param string $password the password to associate to the user
|
||||||
|
* @param string $email the email (may be empty)
|
||||||
* @return bool whether or not the registration was successful
|
* @return bool whether or not the registration was successful
|
||||||
*/
|
*/
|
||||||
function register($username, $password) {
|
function register($username, $password, $email) {
|
||||||
|
$email = $email ? $email : 'your@email.com';
|
||||||
$mysqli = $this->getAuthmeMySqli();
|
$mysqli = $this->getAuthmeMySqli();
|
||||||
if ($mysqli !== null) {
|
if ($mysqli !== null) {
|
||||||
$hash = $this->hash($password);
|
$hash = $this->hash($password);
|
||||||
$stmt = $mysqli->prepare('INSERT INTO ' . self::AUTHME_TABLE . ' (username, realname, password, ip) '
|
$stmt = $mysqli->prepare('INSERT INTO ' . self::AUTHME_TABLE . ' (username, realname, password, email, ip) '
|
||||||
. 'VALUES (?, ?, ?, ?)');
|
. 'VALUES (?, ?, ?, ?, ?)');
|
||||||
$username_low = strtolower($username);
|
$username_low = strtolower($username);
|
||||||
$stmt->bind_param('ssss', $username, $username_low, $hash, $_SERVER['REMOTE_ADDR']);
|
$stmt->bind_param('sssss', $username, $username_low, $hash, $email, $_SERVER['REMOTE_ADDR']);
|
||||||
return $stmt->execute();
|
return $stmt->execute();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -22,13 +22,14 @@ $authme_controller = new Sha256();
|
|||||||
$action = get_from_post_or_empty('action');
|
$action = get_from_post_or_empty('action');
|
||||||
$user = get_from_post_or_empty('username');
|
$user = get_from_post_or_empty('username');
|
||||||
$pass = get_from_post_or_empty('password');
|
$pass = get_from_post_or_empty('password');
|
||||||
|
$email = get_from_post_or_empty('email');
|
||||||
|
|
||||||
$was_successful = false;
|
$was_successful = false;
|
||||||
if ($action && $user && $pass) {
|
if ($action && $user && $pass) {
|
||||||
if ($action === 'Log in') {
|
if ($action === 'Log in') {
|
||||||
$was_successful = process_login($user, $pass, $authme_controller);
|
$was_successful = process_login($user, $pass, $authme_controller);
|
||||||
} else if ($action === 'Register') {
|
} else if ($action === 'Register') {
|
||||||
$was_successful = process_register($user, $pass, $authme_controller);
|
$was_successful = process_register($user, $pass, $email, $authme_controller);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,6 +40,7 @@ into the following form to test it.
|
|||||||
<form method="post">
|
<form method="post">
|
||||||
<table>
|
<table>
|
||||||
<tr><td>Name</td><td><input type="text" value="' . htmlspecialchars($user) . '" name="username" /></td></tr>
|
<tr><td>Name</td><td><input type="text" value="' . htmlspecialchars($user) . '" name="username" /></td></tr>
|
||||||
|
<tr><td>Email</td><td><input type="text" value="' . htmlspecialchars($email) . '" name="email" /></td></tr>
|
||||||
<tr><td>Pass</td><td><input type="password" value="' . htmlspecialchars($pass) . '" name="password" /></td></tr>
|
<tr><td>Pass</td><td><input type="password" value="' . htmlspecialchars($pass) . '" name="password" /></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="submit" name="action" value="Log in" /></td>
|
<td><input type="submit" name="action" value="Log in" /></td>
|
||||||
@ -69,12 +71,14 @@ function process_login($user, $pass, AuthMeController $controller) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Register logic
|
// Register logic
|
||||||
function process_register($user, $pass, AuthMeController $controller) {
|
function process_register($user, $pass, $email, AuthMeController $controller) {
|
||||||
if ($controller->isUserRegistered($user)) {
|
if ($controller->isUserRegistered($user)) {
|
||||||
echo '<h1>Error</h1> This user already exists.';
|
echo '<h1>Error</h1> This user already exists.';
|
||||||
|
} else if (!is_email_valid($email)) {
|
||||||
|
echo '<h1>Error</h1> The supplied email is invalid.';
|
||||||
} else {
|
} else {
|
||||||
// Note that we don't validate the password or username at all in this demo...
|
// Note that we don't validate the password or username at all in this demo...
|
||||||
$register_success = $controller->register($user, $pass);
|
$register_success = $controller->register($user, $pass, $email);
|
||||||
if ($register_success) {
|
if ($register_success) {
|
||||||
printf('<h1>Welcome, %s!</h1>Thanks for registering', htmlspecialchars($user));
|
printf('<h1>Welcome, %s!</h1>Thanks for registering', htmlspecialchars($user));
|
||||||
echo '<br /><a href="index.php">Back to form</a>';
|
echo '<br /><a href="index.php">Back to form</a>';
|
||||||
@ -86,6 +90,12 @@ function process_register($user, $pass, AuthMeController $controller) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function is_email_valid($email) {
|
||||||
|
return trim($email) === ''
|
||||||
|
? true // accept no email
|
||||||
|
: filter_var($email, FILTER_VALIDATE_EMAIL);
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user