Так как RoRegister был потерян, а он был документирован для новичков в PHP, я написал примитивную регистрацию с небольшим функционалом   <?php /**  * Стартовое время  */ define("startTime", microtime(true));  /**  * Кодировка файла+соединения  */ define("charset", "UTF8");  /**  * Настройки  */ $config = array( 	// Шифровать пароли в MD5? true/false 	"md5" => false,  	// Откладка(показ ошибок MySQL), true/false 	"debug" => false,  	// Один аккаунт на сессию? true/false 	"singleBySession" => false,  	// Один аккаунт на почту? true/false 	"singleByEmail" => false,  	// Настройки базы данных 	"mysql" => array( 		// Сервер MySQL 		"hostname" => "127.0.0.1",  		// Порт сервера MySQL 		"port"     => 3306,  		// Пользователь MySQL 		"username" => "ragnarok",  		// Пароль пользователя MySQL 		"password" => "ragnarok",  		// База данных MySQL 		"database" => "ragnarok" 	) );  /**  * Отключим показ ошибок  */ switch ( $config["debug"] ) { 	case true: 		error_reporting(E_ALL); 		ini_set("display_errors", 1); 	break;  	default: 		error_reporting(0); 		ini_set("display_errors", 0); 	break; }  /**  * Запустим сессию если один на сессию  */ if ( $config["singleBySession"] && !session_id() ) 	session_start();  /**  * Установим кодировку страницы.  */ header("Content-type:text/html;charset=" . charset);  /**  * Опишем функцию для работы с $_POST  */ function post($key, $default = "", $xss = true) { 	// Вернем пустую строку если ввода не было 	if ( !isset($_POST[$key]) ) 		return $default;  	// Экранируем от XSS 	return ( $xss ) ? htmlspecialchars($_POST[$key]) : $_POST[$key]; }  /**  * Ошибки  */ $errors = array( 	"login"      => false, // Неправильный логин 	"password"   => false, // Неправильный пароль 	"rePassword" => false, // Неправильный повтор пароля 	"email"      => false, // Неправильная почта 	"reEmail"    => false, // Неправильный повтор почты 	"sex"        => false, // Неправильный пол 	"exists"     => false, // Один аккаунт );  /**  * Функция регистрации  */ function registerAccount() { 	// Глоб. переменные 	global $config, $errors, $registered;  	// Проверим логин 	if ( !preg_match("/^[a-z0-9]{4,23}$/iu", post("login", "", false)) ) 		$errors["login"] = true;  	// Проверим пароль 	if ( mb_strlen(post("password", "", false)) > 32 || mb_strlen(post("password", "", false)) < 4 ) 		$errors["password"] = true;  	// Проверим сходство паролей 	if ( post("password", "", false) != post("rePassword", "", false) ) 		$errors["rePassword"] = true;  	// Проверим почту 	if ( filter_var(post("email", "", false), FILTER_VALIDATE_EMAIL) === false ) 		$errors["email"] = true;  	// Проверим сходство почт 	if ( post("email", "", false) != post("reEmail", "", false) ) 		$errors["reEmail"] = true;  	// Проверим пол 	if ( post("sex", "", false) != "M" &&  post("sex", "", false) != "F" ) 		$errors["sex"] = true;  	// Проверим, есть ли ошибки 	if ( !in_array(true, $errors) ) 	{ 		// Подключаемся к базе данных 		$mysqlHandle = mysql_connect($config["mysql"]["hostname"] . ":" . $config["mysql"]["port"], $config["mysql"]["username"], $config["mysql"]["password"]);  		// Получим последнию ошибку 		$lastError = mysql_error();  		// Проверим подключение 		if ( !empty($lastError) ) 		{ 			// Выводим ошибку если откладка 			if ( $config["debug"] ) 				echo mysql_error();  			// Выходим 			exit; 		}  		// Пробуем выбрать базу данных 		if ( !mysql_select_db($config["mysql"]["database"], $mysqlHandle) ) 		{ 			// Выводим ошибку если откладка 			if ( $config["debug"] ) 				echo "Не могу выбрать базу данных";  			// Выходим 			exit; 		}  		// Установим кодировку 		if ( !mysql_query("SET NAMES " . charset, $mysqlHandle) ) 		{ 			// Выводим ошибку если откладка 			if ( $config["debug"] ) 				echo "Не могу установить кодировку";  			// Выходим 			exit; 		}  		// Проверим, есть ли такой аккаунт 		$mysqlQuery = "SELECT `account_id` FROM `login` WHERE `userid`=\"" . mysql_real_escape_string(post("login", "", false)) . "\"";  		// Добавим запрос если еще проверка по почте 		if ( $config["singleByEmail"] ) 			$mysqlQuery .= " OR `email`=\"" . mysql_real_escape_string(post("email", "", false)) . "\"";  		// Выполняем 		$mysqlResult = mysql_query($mysqlQuery, $mysqlHandle);  		// Проверяем 		if ( mysql_num_rows($mysqlResult) > 0 ) 			// Есть такой, ошибка 			$errors["exists"] = true; 		else 		{ 			// Подготовим запрос 			$mysqlQuery = sprintf("INSERT INTO `login` (`userid`, `user_pass`, `sex`, `email`, `level`) VALUES (\"%s\", \"%s\", \"%s\", \"%s\", %d)", 				mysql_real_escape_string(post("login", "", false)), 				mysql_real_escape_string(( $config["md5"] ) ? md5(post("password", "", false)) : post("password", "", false)), 				mysql_real_escape_string(post("sex", "", false)), 				mysql_real_escape_string(post("email", "", false)), 				0 			);  			// Делаем запрос 			$mysqlResult = mysql_query($mysqlQuery, $mysqlHandle);  			// Если один на сессию 			if ( $config["singleBySession"] ) 				$_SESSION["registered"] = true;  			// Зарегистрировались 			$registered = true;  			// Разорвем соединение с базой 			mysql_close($mysqlHandle); 		} 	} }  /**  * Проверим, был ли запрос  */ if ( post("register", false) ) { 	// Проверим, если один на сессию 	if ( $config["singleBySession"] && !isset($_SESSION["registered"]) ) 		registerAccount(); 	elseif ( !$config["singleBySession"] ) 		registerAccount();	 } ?> <html> <head> 	<title>Регистрация игрового аккаунта</title> </head> <body> 	<div style="width:960px;margin:0px auto;"> 		<?php if ( ( isset($registered) && $registered === true ) || ( $config["singleBySession"] && isset($_SESSION["registered"]) ) ): ?> 			<h3>Аккаунт зарегистрирован!</h3> 			<p>Теперь Вы можете войти в наш игровой мир, приятной игры!</p> 		<?php else: ?> 			<h3>Форма регистрации</h3> 			<p>Все поля обязательны для заполнения, если ввод поля будет неправильным - он будет обведен в красную рамку</p>  			<?php if ( $errors["exists"] && !$config["singleByEmail"] ): ?> 				<p style="color:#ff0000;">Такой аккаунт уже существует</p> 			<?php endif; ?>  			<?php if ( $errors["exists"] && $config["singleByEmail"] ): ?> 				<p style="color:#ff0000;">Такой аккаунт или почта уже существует</p> 			<?php endif; ?>  			<form action="" method="post"> 				<p<?php if ( $errors["login"] ): ?> style="border:1px solid #ff0000;"<?php endif; ?>>Логин:<br /><input type="text" name="login" value="<?php echo post("login"); ?>" /></p> 				<p<?php if ( $errors["password"] || $errors["rePassword"] ): ?> style="border:1px solid #ff0000;"<?php endif; ?>>Пароль:<br /><input type="password" name="password" value="" /><br /><input type="password" name="rePassword" /></p> 				<p<?php if ( $errors["email"] || $errors["reEmail"] ): ?> style="border:1px solid #ff0000;"<?php endif; ?>>Почта:<br /><input type="text" name="email" value="<?php echo post("email"); ?>" /><br /><input type="text" name="reEmail" /></p> 				<p<?php if ( $errors["sex"] ): ?> style="border:1px solid #ff0000;"<?php endif; ?>>Пол:<br /><select name="sex"><option value="M" <?php if ( post("sex") == "M" ): ?>selected<?php endif; ?>>Мужской</option><option value="F" <?php if ( post("sex") == "F" ): ?>selected<?php endif; ?>>Женский</option></select></p> 				<p><input type="submit" name="register" value="Зарегистрироваться" /></p> 			</form> 		<?php endif; ?> 		<p style="margin:64px 0px 0px 0px;font-size:12pt;">Загрузка страницы: <?php echo round(microtime(true) - startTime, 3); ?> секунд</p> 	</div> </body> </html> <?php /**  * Копирайт  */ if ( isset($_GET["copyright"]) ) 	echo "Milky Way -> 631977082";  С наступающим!