3 UserCake Version: 2.0.2
\r
7 require_once("models/config.php");
\r
8 if (!securePage($_SERVER['PHP_SELF'])){die();}
\r
10 //Prevent the user visiting the logged in page if he/she is already logged in
\r
11 if(isUserLoggedIn()) { header("Location: account.php"); die(); }
\r
17 $email = trim($_POST["email"]);
\r
18 $username = trim($_POST["username"]);
\r
19 $displayname = trim($_POST["displayname"]);
\r
20 $password = trim($_POST["password"]);
\r
21 $confirm_pass = trim($_POST["passwordc"]);
\r
22 $captcha = md5($_POST["captcha"]);
\r
25 if ($captcha != $_SESSION['captcha'])
\r
27 $errors[] = lang("CAPTCHA_FAIL");
\r
29 if(minMaxRange(5,25,$username))
\r
31 $errors[] = lang("ACCOUNT_USER_CHAR_LIMIT",array(5,25));
\r
33 if(!ctype_alnum($username)){
\r
34 $errors[] = lang("ACCOUNT_USER_INVALID_CHARACTERS");
\r
36 if(minMaxRange(5,25,$displayname))
\r
38 $errors[] = lang("ACCOUNT_DISPLAY_CHAR_LIMIT",array(5,25));
\r
40 if(!ctype_alnum($displayname)){
\r
41 $errors[] = lang("ACCOUNT_DISPLAY_INVALID_CHARACTERS");
\r
43 if(minMaxRange(8,50,$password) && minMaxRange(8,50,$confirm_pass))
\r
45 $errors[] = lang("ACCOUNT_PASS_CHAR_LIMIT",array(8,50));
\r
47 else if($password != $confirm_pass)
\r
49 $errors[] = lang("ACCOUNT_PASS_MISMATCH");
\r
51 if(!isValidEmail($email))
\r
53 $errors[] = lang("ACCOUNT_INVALID_EMAIL");
\r
55 //End data validation
\r
56 if(count($errors) == 0)
\r
58 //Construct a user object
\r
59 $user = new User($username,$displayname,$password,$email);
\r
61 //Checking this flag tells us whether there were any errors such as possible data duplication occured
\r
64 if($user->username_taken) $errors[] = lang("ACCOUNT_USERNAME_IN_USE",array($username));
\r
65 if($user->displayname_taken) $errors[] = lang("ACCOUNT_DISPLAYNAME_IN_USE",array($displayname));
\r
66 if($user->email_taken) $errors[] = lang("ACCOUNT_EMAIL_IN_USE",array($email));
\r
70 //Attempt to add the user to the database, carry out finishing tasks like emailing the user (if required)
\r
71 if(!$user->userCakeAddUser())
\r
73 if($user->mail_failure) $errors[] = lang("MAIL_ERROR");
\r
74 if($user->sql_failure) $errors[] = lang("SQL_ERROR");
\r
78 if(count($errors) == 0) {
\r
79 $successes[] = $user->success;
\r
83 require_once("models/header.php");
\r
87 <div id='top'><div id='logo'></div></div>
\r
92 <div id='left-nav'>";
\r
93 include("left-nav.php");
\r
99 echo resultBlock($errors,$successes);
\r
103 <form name='newUser' action='".$_SERVER['PHP_SELF']."' method='post'>
\r
106 <label>User Name:</label>
\r
107 <input type='text' name='username' />
\r
110 <label>Display Name:</label>
\r
111 <input type='text' name='displayname' />
\r
114 <label>Password:</label>
\r
115 <input type='password' name='password' />
\r
118 <label>Confirm:</label>
\r
119 <input type='password' name='passwordc' />
\r
122 <label>Email:</label>
\r
123 <input type='text' name='email' />
\r
126 <label>Security Code:</label>
\r
127 <img src='models/captcha.php'>
\r
129 <label>Enter Security Code:</label>
\r
130 <input name='captcha' type='text'>
\r
133 <input type='submit' value='Register'/>
\r
140 <div id='bottom'></div>
\r