32f1ae16d5f899790c8662014cae92ee54783e71
[matches/MCTX3420.git] / testing / MCTXWeb / public_html / users / register.php
1 <?php\r
2 /*\r
3 UserCake Version: 2.0.2\r
4 http://usercake.com\r
5 */\r
6 \r
7 require_once("models/config.php");\r
8 if (!securePage($_SERVER['PHP_SELF'])){die();}\r
9 \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
12 \r
13 //Forms posted\r
14 if(!empty($_POST))\r
15 {\r
16         $errors = array();\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
23         \r
24         \r
25         if ($captcha != $_SESSION['captcha'])\r
26         {\r
27                 $errors[] = lang("CAPTCHA_FAIL");\r
28         }\r
29         if(minMaxRange(5,25,$username))\r
30         {\r
31                 $errors[] = lang("ACCOUNT_USER_CHAR_LIMIT",array(5,25));\r
32         }\r
33         if(!ctype_alnum($username)){\r
34                 $errors[] = lang("ACCOUNT_USER_INVALID_CHARACTERS");\r
35         }\r
36         if(minMaxRange(5,25,$displayname))\r
37         {\r
38                 $errors[] = lang("ACCOUNT_DISPLAY_CHAR_LIMIT",array(5,25));\r
39         }\r
40         if(!ctype_alnum($displayname)){\r
41                 $errors[] = lang("ACCOUNT_DISPLAY_INVALID_CHARACTERS");\r
42         }\r
43         if(minMaxRange(8,50,$password) && minMaxRange(8,50,$confirm_pass))\r
44         {\r
45                 $errors[] = lang("ACCOUNT_PASS_CHAR_LIMIT",array(8,50));\r
46         }\r
47         else if($password != $confirm_pass)\r
48         {\r
49                 $errors[] = lang("ACCOUNT_PASS_MISMATCH");\r
50         }\r
51         if(!isValidEmail($email))\r
52         {\r
53                 $errors[] = lang("ACCOUNT_INVALID_EMAIL");\r
54         }\r
55         //End data validation\r
56         if(count($errors) == 0)\r
57         {       \r
58                 //Construct a user object\r
59                 $user = new User($username,$displayname,$password,$email);\r
60                 \r
61                 //Checking this flag tells us whether there were any errors such as possible data duplication occured\r
62                 if(!$user->status)\r
63                 {\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
67                 }\r
68                 else\r
69                 {\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
72                         {\r
73                                 if($user->mail_failure) $errors[] = lang("MAIL_ERROR");\r
74                                 if($user->sql_failure)  $errors[] = lang("SQL_ERROR");\r
75                         }\r
76                 }\r
77         }\r
78         if(count($errors) == 0) {\r
79                 $successes[] = $user->success;\r
80         }\r
81 }\r
82 \r
83 require_once("models/header.php");\r
84 echo "\r
85 <body>\r
86 <div id='wrapper'>\r
87 <div id='top'><div id='logo'></div></div>\r
88 <div id='content'>\r
89 <h1>UserCake</h1>\r
90 <h2>Register</h2>\r
91 \r
92 <div id='left-nav'>";\r
93 include("left-nav.php");\r
94 echo "\r
95 </div>\r
96 \r
97 <div id='main'>";\r
98 \r
99 echo resultBlock($errors,$successes);\r
100 \r
101 echo "\r
102 <div id='regbox'>\r
103 <form name='newUser' action='".$_SERVER['PHP_SELF']."' method='post'>\r
104 \r
105 <p>\r
106 <label>User Name:</label>\r
107 <input type='text' name='username' />\r
108 </p>\r
109 <p>\r
110 <label>Display Name:</label>\r
111 <input type='text' name='displayname' />\r
112 </p>\r
113 <p>\r
114 <label>Password:</label>\r
115 <input type='password' name='password' />\r
116 </p>\r
117 <p>\r
118 <label>Confirm:</label>\r
119 <input type='password' name='passwordc' />\r
120 </p>\r
121 <p>\r
122 <label>Email:</label>\r
123 <input type='text' name='email' />\r
124 </p>\r
125 <p>\r
126 <label>Security Code:</label>\r
127 <img src='models/captcha.php'>\r
128 </p>\r
129 <label>Enter Security Code:</label>\r
130 <input name='captcha' type='text'>\r
131 </p>\r
132 <label>&nbsp;<br>\r
133 <input type='submit' value='Register'/>\r
134 </p>\r
135 \r
136 </form>\r
137 </div>\r
138 \r
139 </div>\r
140 <div id='bottom'></div>\r
141 </div>\r
142 </body>\r
143 </html>";\r
144 ?>\r

UCC git Repository :: git.ucc.asn.au