aboutsummaryrefslogtreecommitdiffstats
path: root/mod/register.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/register.php')
-rw-r--r--mod/register.php22
1 files changed, 20 insertions, 2 deletions
diff --git a/mod/register.php b/mod/register.php
index fdf488b1a..06ed1e0f1 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -199,6 +199,24 @@ function register_post(&$a) {
return;
}
+ /**
+ * if somebody clicked submit twice very quickly, they could end up with two accounts
+ * due to race condition. Remove this one.
+ */
+
+ $r = q("SELECT `uid` FROM `user`
+ WHERE `nickname` = '%s' ",
+ dbesc($nickname)
+ );
+ if((count($r) > 1) && $newuid) {
+ $err .= t('Nickname is already registered. Please choose another.') . EOL;
+ q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1",
+ intval($newuid)
+ );
+ notice ($err);
+ return;
+ }
+
if(x($newuid) !== false) {
$r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` )
VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ",
@@ -307,7 +325,7 @@ function register_post(&$a) {
'$password' => $new_password,
'$uid' => $newuid ));
- $res = mail($email, t('Registration details for ') . $a->config['sitename'],
+ $res = mail($email, sprintf(t('Registration details for %s'), $a->config['sitename']),
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
@@ -344,7 +362,7 @@ function register_post(&$a) {
'$hash' => $hash
));
- $res = mail($a->config['admin_email'], t('Registration request at ') . $a->config['sitename'],
+ $res = mail($a->config['admin_email'], sprintf(t('Registration request at %s'), $a->config['sitename']),
$email_tpl,'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
if($res) {