Documentation is available at register.php
- <?php
- /**
- * Registeration Script
- *
- * Validates the user information and registers new users
- * in the database.
- * @package Phone2Dev
- * @author Stanislav Miroshnikov
- */
- ?>
- <html>
- <head>
- <title>Phone2Dev Registration</title>
- </head>
- <body>
- <h1>Phone2Dev Registration</h1>
- <?php
- // create a self validating registration form
- /**
- * Requires PEAR HTML QuickForm package
- */
- require_once 'HTML/QuickForm.php';
- $form =& new HTML_QuickForm();
- $form->addElement('header','userInfo','User information');
- // first name
- $form->addElement('text', 'firstName', 'First name: ');
- // "required" rule
- $form->addRule('firstName','Please enter your first name.', 'required');
- // "maxlength" rule
- $form->addRule('firstName'
- ,'First name longer than 10 letters in not accepted.',
- 'maxlength',10);
- // "lettersonly" rule
- $form->addRule('firstName'
- ,'Your first name can contain only letters.', 'lettersonly');
- // last name
- $form->addElement('text', 'lastName', 'Last name: ');
- // "required" rule
- $form->addRule('lastName','Please enter your last name.', 'required');
- // "maxlength" rule
- $form->addRule('lastName'
- ,'First name longer than 20 letters is not accepted.',
- 'maxlength',20);
- // "lettersonly" rule
- $form->addRule('lastName'
- ,'Please enter only letters for you last name.', 'lettersonly');
- // sip address
- $form->addElement('text', 'address', 'SIP address: sip: ');
- // "required" rule
- $form->addRule('address','Enter your SIP address.', 'required');
- // "maxlength" rule
- $form->addRule('address'
- ,'First name longer than 60 letters is not accepted.',
- 'maxlength',60);
- // "email" rule
- $form->addRule('address',
- 'Please enter a valid sip address e.g. john@server.com'
- , 'email');
- // server
- $form->addElement('text', 'server', 'SIP server: ');
- // "required" rule
- $form->addRule('server','Please enter your server\'s address.', 'required');
- // "maxlength" rule
- $form->addRule('server'
- ,'Please enter a server name not longer than 30 letters.',
- 'maxlength', 30);
- // "regex" rule
- $form->addRule('server'
- ,'Please enter a valid domain name for your server',
- 'regex'
- ,"/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$/");
- $form->addElement('header','voiceLogin','Voice login');
- // phone
- $form->addElement('text', 'phone', 'Phone number: ');
- // "required" rule
- $form->addRule('phone','Please enter your phone number.', 'required');
- // "maxlength" rule
- $form->addRule('phone'
- ,'Please enter a valid phone number e.g. 2125558888.',
- 'maxlength', 10);
- // pins
- $form->addElement('password','pin','4 digit pin:');
- // "required" rule
- $form->addRule('pin','Please enter your pin number.', 'required');
- // "maxlength" rule
- $form->addRule('pin'
- ,'Please enter a pin that is 4 digits long.',
- 'rangelength', array(4, 4));
- // "regex" rule
- $form->addRule('pin','Please enter only digits.',
- 'regex', "/[0-9]+/");
- $form->addElement('password','pin2','Pin (again):');
- // "required" rule
- $form->addRule('pin2','Please enter your pin number.', 'required');
- $form->addRule(array('pin','pin2'),
- "Pin numbers don't match!",'compare');
- $form->addElement('header','webLogin','Web login');
- // username
- $form->addElement('text', 'username', 'Username: ');
- // "required" rule
- $form->addRule('username','Please enter your username.', 'required');
- // "maxlength" rule
- $form->addRule('username'
- ,'Please enter a username between 3 and 30 characters.',
- 'rangelength',array(3, 30));
- // "alphanumeric" rule
- $form->addRule('username'
- ,'Your username can contain only letters and numbers.'
- , 'alphanumeric');
- // passwords
- $form->addElement('password','password','Password:');
- // "required" rule
- $form->addRule('password','Please enter your password.', 'required');
- // "maxlength" rule
- $form->addRule('password'
- ,'Please enter a password between 6 and 12 characters.',
- 'rangelength', array(6, 12));
- // "alphanumeric" rule
- $form->addRule('password'
- ,'Your password can contain only letters and numbers.'
- , 'alphanumeric');
- $form->addElement('password','password2','Password (again):');
- // "required" rule
- $form->addRule('password2','Please re-enter your password.', 'required');
- $form->addRule(array('password','password2'),
- "Passwords don't match!",'compare');
- $form->addElement('submit', 'register', 'Register');
- $form->applyFilter('__ALL__', 'trim');
- $form->addFormRule('unique_validate');
- if ($form->validate()) {
- // If the form validates, freeze and process the data
- $form->freeze();
- $form->process('register');
- } else {
- $form->display();
- }
- /**
- * Register the user in the database using the validated data
- * @param fields associative array containing the fields of form
- */
- function register($fields) {
- /**
- * Requires Phone2Dev class to access the database
- */
- require_once("phone2dev.php");
- $objP2D =& new Phone2Dev();
- $objP2D->dbConnect();
- $objP2D->registerUser($fields['firstName'],
- $fields['lastName'],
- $fields['username'],
- $fields['password'],
- $fields['phone'],
- $fields['pin'],
- $fields['server'],
- $fields['address']);
- $objP2D->dbDisconnect();
- print "<h3>Success.</h3>";
- }
- /**
- * Verifies the uniqueness of the username and phone number
- * @param fields associative array containing the fields of form
- * @returns true if the username and phone number are valid, else
- * it returns an associative array of error messages
- */
- function unique_validate ($fields) {
- // Set up array to store any errors
- $errors = array();
- /**
- * Requires Phone2Dev class to access the database
- */
- require_once("phone2dev.php");
- $objP2D =& new Phone2Dev();
- $objP2D->dbConnect();
- //validation check for the user name
- if (preg_match('/^[a-zA-Z0-9]{3, 30}$/', $fields['username'])
- && $objP2D->userExists($fields['username'])) {
- $errors['username'] =
- "The username that you have entered is taken.";
- }
- if (preg_match('/^[0-9]{10, 10}$/', $fields['phone'])
- && $objP2D->phoneExists($fields['phone'])) {
- $errors['phone'] =
- "The phone number that you have entered is already registered.";
- }
- $objP2D->dbDisconnect();
- //Return the errors if we have any, or TRUE if not
- if (empty($errors)) {
- return true;
- }
- else {
- return $errors;
- }
- }
- ?>
- <p> Return to Phone2Dev <a href="login.php">login</a>.</p>
- </body>
- </html>
Documentation generated on Tue, 4 Jan 2005 13:48:08 -0500 by phpDocumentor 1.3.0RC3