Diff Revisions 1 vs 464 for /branches/0.9/functions/register.php

Diff revisions: vs.
1 464   <- Revisions
       
      Diff lines for:
 Rev 1 : Lines 2 -> 87
 Rev 464 : Lines 2 -> 87
2 2 /* eoCMS is a content management system written in php
3 3 Copyright (C) 2007 - 2009 James Mortemore, Ryan Matthews
4 4 http://www.eocms.com
5 - This work is licensed under the Creative Commons Attribution-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
5 + This work is licensed under the Creative Commons
6 + Attribution-Share Alike 3.0 United States License.
7 + To view a copy of this license, visit
8 + http://creativecommons.org/licenses/by-sa/3.0/us/
9 + or send a letter to Creative Commons, 171 Second Street,
10 + Suite 300, San Francisco, California, 94105, USA.
6 11 Additional license terms at http://eocms.com/license.html
7 12 */
8 - function register($username, $password, $vpassword, $email, $token, $captcha)
9 - {
10 - global $settings;
11 - call('checktoken', $token);
12 - if($settings['register_captcha'] =='on') {
13 - $captcha = call('captchacheck', $captcha);
13 + function register($username, $password, $vpassword, $email, $token, $captcha) {
14 + global $settings;
15 + call('checktoken', $token);
16 + if($settings['register_captcha'] =='on')
17 + $captcha = call('captchacheck', $captcha);
18 + if($settings['register_captcha'] =='on' && $captcha == false)
19 + return false;
20 + $sql = call('sql_query', "SELECT * FROM users WHERE user = '$username'");
21 + $fetch = call('sql_fetch_array',$sql);
22 + if ($fetch['user'] == $username) {
23 + $_SESSION['error'] = 'Username is already taken!';
24 + return false;
25 + }
26 + if (empty($username)) {
27 + $_SESSION['error'] = 'You did not enter a username'; //idiot how on earth are people meant to know who u are!
28 + return false;
29 + }
30 + if (strlen($password) < 6) {
31 + $_SESSION['error'] = 'password must be 6 characters or longer!';
32 + return false;
33 + }
34 + $decodedusername = str_replace('&lt;', '<', $username);
35 + $decodedusername = str_replace('&gt;', '>', $decodedusername);
36 + if (strlen($decodedusername) > 16) {
37 + $_SESSION['error'] = 'Your username is too long, it must be below 16 characters';
38 + return false;
39 + }
40 + if ($password != $vpassword) {
41 + $_SESSION['error'] = 'The passwords entered to do not match';
42 + return false;
43 + }
44 + if (!preg_match("/^([a-z0-9._-](\+[a-z0-9])*)+@[a-z0-9.-]+\.[a-z]{2,6}$/i", $email)) {
45 + $_SESSION['error'] = 'The email address entered is not valid';
46 + return false;
47 + }
48 + if ($settings['register_approval'] == 'none')
49 + $group = '2';
50 + else
51 + $group = '1';
52 + if (!isset($_SESSION['error']) && !isset($_SESSION['error_die'])) {
53 + $sql = call('sql_query', "INSERT INTO users (user,pass,email,ip,regdate,lastlogin, membergroup, theme) VALUES('$username', '$password', '$email', '" . call('visitor_ip') . "', '" . time() . "', 'Never', '$group', '".$settings['site_theme']."')");
54 + if($sql)
55 + return true;
56 + if ($settings['register_approval'] == 'email') {
57 + $mail = new PHPMailer();
58 + //last inserted ID
59 + $id = call('sql_insert_id');
60 + //Generate MD5 hash key
61 + $key = call('generate_key', 6);
62 + //Put together the key string
63 + $key_string = "key=$key&id=$id";
64 + //Insert into database
65 + $query = call('sql_query', "INSERT INTO activation_keys (user_id , key_number) VALUES ('$id', '$key')");
66 + if ($settings['mail'] == 'sendmail')
67 + $mail->IsMail();
68 + elseif ($settings['mail'] == 'smtp') {
69 + $mail->IsSMTP();
70 + $mail->Host = $settings['smtp_host'];
71 + $mail->SMTPAuth = true;
72 + $mail->Username = $settings['smtp_username'];
73 + $mail->Password = $settings['smtp_password'];
74 + }
75 + $mail->FromName = $settings['site_name'];
76 + $mail->From = $settings['email'];
77 + $mail->AddAddress("$email");
78 + $mail->Subject = 'Account Activation at' . $settings['site_name'] . '';
79 + $mail->Body = "Please click the following link to activate your account:\n--------\n" . $settings['site_url'] . "/index.php?act=activate&$key_string";
80 + if (!$mail->Send()) {
81 + $_SESSION['error'] = "Error sending: " . $mail->ErrorInfo;
82 + return false;
83 + }
84 + }
85 + }
14 86 }
15 - if($settings['register_captcha'] =='on' && $captcha == false) {
16 - return false;
17 - }
18 - $sql = call('sql_query', "SELECT * FROM users WHERE user = '$username'");
19 - $fetch = call('sql_fetch_array',$sql);
20 - if ($fetch['user'] == $username) {
21 - $_SESSION['error'] = 'Username is already taken!';
22 - return false;
23 - }
24 - if (empty($username)) {
25 - $_SESSION['error'] = 'You did not enter a username'; //idiot how on earth are people meant to know who u are!
26 - return false;
27 - }
28 - if (strlen($password) < 6) {
29 - $_SESSION['error'] = 'password must be 6 characters or longer!';
30 - return false;
31 - }
32 - $decodedusername = str_replace('&lt;', '<', $username);
33 - $decodedusername = str_replace('&gt;', '>', $decodedusername);
34 - if (strlen($decodedusername) > 16) {
35 - $_SESSION['error'] = 'Your username is too long, it must be below 16 characters';
36 - return false;
37 - }
38 - if ($password != $vpassword) {
39 - $_SESSION['error'] = 'The passwords entered to do not match';
40 - return false;
41 - }
42 - if (!preg_match("/^([a-z0-9._-](\+[a-z0-9])*)+@[a-z0-9.-]+\.[a-z]{2,6}$/i", $email)) {
43 - $_SESSION['error'] = 'The email address entered is not valid';
44 - return false;
45 - }
46 - if ($settings['register_approval'] == 'none') {
47 - $group = '2';
48 - } else {
49 - $group = '1';
50 - }
51 - if (!isset($_SESSION['error']) && !isset($_SESSION['error_die'])) {
52 - $sql = call('sql_query', "INSERT INTO users (user,pass,email,ip,regdate,lastlogin, membergroup, theme) VALUES('$username', '$password', '$email', '" . call('visitor_ip') . "', '" . time() . "', 'Never', '$group', '".$settings['site_theme']."')");
53 - if($sql) {
54 - return true;
55 - }
56 - if ($settings['register_approval'] == 'email') {
57 - $mail = new PHPMailer();
58 - //last inserted ID
59 - $id = call('sql_insert_id');
60 - //Generate MD5 hash key
61 - $key = call('generate_key', 6);
62 - //Put together the key string
63 - $key_string = "key=$key&id=$id";
64 - //Insert into database
65 - $query = call('sql_query', "INSERT INTO activation_keys (user_id , key_number) VALUES ('$id', '$key')");
66 - if ($settings['mail'] == 'sendmail') {
67 - $mail->IsMail();
68 - } elseif ($settings['mail'] == 'smtp') {
69 - $mail->IsSMTP();
70 - $mail->Host = $settings['smtp_host'];
71 - $mail->SMTPAuth = true;
72 - $mail->Username = $settings['smtp_username'];
73 - $mail->Password = $settings['smtp_password'];
74 - }
75 - $mail->FromName = $settings['site_name'];
76 - $mail->From = $settings['email'];
77 - $mail->AddAddress("$email");
78 - $mail->Subject = 'Account Activation at' . $settings['site_name'] . '';
79 - $mail->Body = "Please click the following link to activate your account:\n--------\n" . $settings['site_url'] . "/index.php?act=activate&$key_string";
80 - if (!$mail->Send()) {
81 - $_SESSION['error'] = "Error sending: " . $mail->ErrorInfo;
82 - return false;
83 - }
84 - }
85 - }
86 - }
87 87 ?>