Add UserCake
[matches/MCTX3420.git] / testing / MCTXWeb / public_html / users / register.php
diff --git a/testing/MCTXWeb/public_html/users/register.php b/testing/MCTXWeb/public_html/users/register.php
new file mode 100644 (file)
index 0000000..32f1ae1
--- /dev/null
@@ -0,0 +1,144 @@
+<?php\r
+/*\r
+UserCake Version: 2.0.2\r
+http://usercake.com\r
+*/\r
+\r
+require_once("models/config.php");\r
+if (!securePage($_SERVER['PHP_SELF'])){die();}\r
+\r
+//Prevent the user visiting the logged in page if he/she is already logged in\r
+if(isUserLoggedIn()) { header("Location: account.php"); die(); }\r
+\r
+//Forms posted\r
+if(!empty($_POST))\r
+{\r
+       $errors = array();\r
+       $email = trim($_POST["email"]);\r
+       $username = trim($_POST["username"]);\r
+       $displayname = trim($_POST["displayname"]);\r
+       $password = trim($_POST["password"]);\r
+       $confirm_pass = trim($_POST["passwordc"]);\r
+       $captcha = md5($_POST["captcha"]);\r
+       \r
+       \r
+       if ($captcha != $_SESSION['captcha'])\r
+       {\r
+               $errors[] = lang("CAPTCHA_FAIL");\r
+       }\r
+       if(minMaxRange(5,25,$username))\r
+       {\r
+               $errors[] = lang("ACCOUNT_USER_CHAR_LIMIT",array(5,25));\r
+       }\r
+       if(!ctype_alnum($username)){\r
+               $errors[] = lang("ACCOUNT_USER_INVALID_CHARACTERS");\r
+       }\r
+       if(minMaxRange(5,25,$displayname))\r
+       {\r
+               $errors[] = lang("ACCOUNT_DISPLAY_CHAR_LIMIT",array(5,25));\r
+       }\r
+       if(!ctype_alnum($displayname)){\r
+               $errors[] = lang("ACCOUNT_DISPLAY_INVALID_CHARACTERS");\r
+       }\r
+       if(minMaxRange(8,50,$password) && minMaxRange(8,50,$confirm_pass))\r
+       {\r
+               $errors[] = lang("ACCOUNT_PASS_CHAR_LIMIT",array(8,50));\r
+       }\r
+       else if($password != $confirm_pass)\r
+       {\r
+               $errors[] = lang("ACCOUNT_PASS_MISMATCH");\r
+       }\r
+       if(!isValidEmail($email))\r
+       {\r
+               $errors[] = lang("ACCOUNT_INVALID_EMAIL");\r
+       }\r
+       //End data validation\r
+       if(count($errors) == 0)\r
+       {       \r
+               //Construct a user object\r
+               $user = new User($username,$displayname,$password,$email);\r
+               \r
+               //Checking this flag tells us whether there were any errors such as possible data duplication occured\r
+               if(!$user->status)\r
+               {\r
+                       if($user->username_taken) $errors[] = lang("ACCOUNT_USERNAME_IN_USE",array($username));\r
+                       if($user->displayname_taken) $errors[] = lang("ACCOUNT_DISPLAYNAME_IN_USE",array($displayname));\r
+                       if($user->email_taken)    $errors[] = lang("ACCOUNT_EMAIL_IN_USE",array($email));               \r
+               }\r
+               else\r
+               {\r
+                       //Attempt to add the user to the database, carry out finishing  tasks like emailing the user (if required)\r
+                       if(!$user->userCakeAddUser())\r
+                       {\r
+                               if($user->mail_failure) $errors[] = lang("MAIL_ERROR");\r
+                               if($user->sql_failure)  $errors[] = lang("SQL_ERROR");\r
+                       }\r
+               }\r
+       }\r
+       if(count($errors) == 0) {\r
+               $successes[] = $user->success;\r
+       }\r
+}\r
+\r
+require_once("models/header.php");\r
+echo "\r
+<body>\r
+<div id='wrapper'>\r
+<div id='top'><div id='logo'></div></div>\r
+<div id='content'>\r
+<h1>UserCake</h1>\r
+<h2>Register</h2>\r
+\r
+<div id='left-nav'>";\r
+include("left-nav.php");\r
+echo "\r
+</div>\r
+\r
+<div id='main'>";\r
+\r
+echo resultBlock($errors,$successes);\r
+\r
+echo "\r
+<div id='regbox'>\r
+<form name='newUser' action='".$_SERVER['PHP_SELF']."' method='post'>\r
+\r
+<p>\r
+<label>User Name:</label>\r
+<input type='text' name='username' />\r
+</p>\r
+<p>\r
+<label>Display Name:</label>\r
+<input type='text' name='displayname' />\r
+</p>\r
+<p>\r
+<label>Password:</label>\r
+<input type='password' name='password' />\r
+</p>\r
+<p>\r
+<label>Confirm:</label>\r
+<input type='password' name='passwordc' />\r
+</p>\r
+<p>\r
+<label>Email:</label>\r
+<input type='text' name='email' />\r
+</p>\r
+<p>\r
+<label>Security Code:</label>\r
+<img src='models/captcha.php'>\r
+</p>\r
+<label>Enter Security Code:</label>\r
+<input name='captcha' type='text'>\r
+</p>\r
+<label>&nbsp;<br>\r
+<input type='submit' value='Register'/>\r
+</p>\r
+\r
+</form>\r
+</div>\r
+\r
+</div>\r
+<div id='bottom'></div>\r
+</div>\r
+</body>\r
+</html>";\r
+?>\r

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