* @copyright 2001 - 2011 Ampache.org * @license http://opensource.org/licenses/gpl-2.0 GPLv2 * @version PHP 5.2 * @link http://www.ampache.org/ * @since File available since Release 1.0 */ define('NO_SESSION','1'); require_once 'lib/init.php'; /* Check Perms */ if (!Config::get('allow_public_registration') || Config::get('demo_mode')) { debug_event('DENIED','Error Attempted registration','1'); access_denied(); exit(); } /** * These are only needed for this page so they aren't included in init.php * this is for email validation and the cool little graphic */ require_once Config::get('prefix') . '/modules/validatemail/validateEmailFormat.php'; require_once Config::get('prefix') . '/modules/validatemail/validateEmail.php'; /* Don't even include it if we aren't going to use it */ if (Config::get('captcha_public_reg')) { define ("CAPTCHA_INVERSE", 1); include Config::get('prefix') . '/modules/captcha/captcha.php'; } /* Start switch based on action passed */ switch ($_REQUEST['action']) { case 'validate': $username = scrub_in($_GET['username']); $validation = scrub_in($_GET['auth']); require_once Config::get('prefix') . '/templates/show_user_activate.inc.php'; break; case 'add_user': /** * User information has been entered * we need to check the database for possible existing username first * if username exists, error and say "Please choose a different name." * if username does not exist, insert user information into database * then allow the user to 'click here to login' * possibly by logging them in right then and there with their current info * and 'click here to login' would just be a link back to index.php */ $fullname = scrub_in($_POST['fullname']); $username = scrub_in($_POST['username']); $email = scrub_in($_POST['email']); $pass1 = scrub_in($_POST['password_1']); $pass2 = scrub_in($_POST['password_2']); /* If we're using the captcha stuff */ if (Config::get('captcha_public_reg')) { $captcha = captcha::solved(); if(!isset ($captcha)) { Error::add('captcha',_('Error Captcha Required')); } if (isset ($captcha)) { if ($captcha) { $msg="SUCCESS"; } else { Error::add('captcha',_('Error Captcha Failed')); } } // end if we've got captcha } // end if it's enabled if (Config::get('user_agreement')) { if (!$_POST['accept_agreement']) { Error::add('user_agreement',_("You must accept the user agreement")); } } // if they have to agree to something if (!$_POST['username']) { Error::add('username',_("You did not enter a username")); } if(!$fullname) { Error::add('fullname',_("Please fill in your full name (Firstname Lastname)")); } /* Check the mail for correct address formation. */ $attempt = 0; $max_attempts = 3; $response_code = ""; while ( $response_code == "" || strstr( $response_code, "fsockopen error" )) { $validate_results = validateEmail( $email ); $response_code = $validate_results[1]; if($attempt == $max_attempts) { break; } $attempt++; } if ($validate_results[0] OR strstr($validate_results[1],"greylist")) { $mmsg = "MAILOK"; } else { Error::add('email',_("Error Email address not confirmed") . "
$validate_results[1]"); } /* End of mailcheck */ if (!$pass1) { Error::add('password',_("You must enter a password")); } if ( $pass1 != $pass2 ) { Error::add('password',_("Your passwords do not match")); } if (!User::check_username($username)) { Error::add('duplicate_user',_("Error Username already exists")); } // If we've hit an error anywhere up there break! if (Error::occurred()) { require_once Config::get('prefix') . '/templates/show_user_registration.inc.php'; break; } /* Attempt to create the new user */ $access = '5'; switch (Config::get('auto_user')) { case 'admin': $access = '100'; break; case 'user': $access = '25'; break; default: case 'guest': $access = '5'; break; } // auto-user level $new_user = User::create($username,$fullname,$email,$pass1,$access); if (!$new_user) { Error::add('duplicate_user',_("Error: Insert Failed")); require_once Config::get('prefix') . '/templates/show_user_registration.inc.php'; break; } $client = new User($new_user); $validation = md5(uniqid(rand(), true)); $client->update_validation($validation); Registration::send_confirmation($username, $fullname, $email, $pass1, $validation); require_once Config::get('prefix') . '/templates/show_registration_confirmation.inc.php'; break; case 'show_add_user': default: require_once Config::get('prefix') . '/templates/show_user_registration.inc.php'; break; } // end switch on action ?>