$confirm = new Confirm_address();
- $confirm->code = common_good_rand(16);
+ $confirm->code = common_confirmation_code(128);
$confirm->user_id = $user->id;
$confirm->address = $email;
$confirm->address_type = 'email';
if ($email) {
$confirm = new Confirm_address();
- $confirm->code = common_good_rand(16);
+ $confirm->code = common_confirmation_code(128);
$confirm->user_id = $user->id;
$confirm->address = $email;
$confirm->address_type = 'email';
return common_local_url('shownotice',
array('notice' => $notice->id));
}
+
+# 36 alphanums - lookalikes (0, O, 1, I) = 32 chars = 5 bits
+
+define('CODECHARS', '23456789ABCDEFGHJKLMNPQRSTUVWXYZ');
+
+function common_confirmation_code($bits) {
+ $chars = ceil($bits/5);
+ $code = '';
+ for ($i = 0; $i < $chars; $i++) {
+ # XXX: convert to string and back
+ $num = hexdec(common_good_rand(1));
+ $code .= CODECHARS[$num%32];
+ }
+ return $code;
+}