connect_errno) { die('Connect Error: ' . $mysqli->connect_errno); } else { $mysqli->set_charset('utf8'); } $registration = new registration(); class registration { public $login = false; public $password = false; public $password2 = false; public $email = false; public $capcha = false; public $reg = true; public $errors = array(0); public $error = array( 0 => 'Поля должны быть заполнены', 1 => 'Не указано имя !!!', 2 => 'В Логине менее 3 или более 30 символов', 3 => 'Не указан e-mail !!!', 4 => 'В адресе e-mail менее 6 или более 30 символов', 5 => 'Неверный формат e-mail', 6 => 'Не верно введено подтверждение пароля', 7 => 'Код проверки неверный', 8 => 'Пользователь с таким именем уже имеется', 9 => 'Пользователь с такой элекстонной почтой уже имеется' ); public function __construct() { if ($this->is_au()) { $this->reg = false; echo '
Вы уже имеете аккаунт
'; } if ($this->reg == true) { $this->is_post(); if (empty($this->login)) { $this->error(1); } elseif (mb_strlen($this->login)>30 || mb_strlen($this->login)<3) { $this->error(2); } if (empty($this->email)) { $this->error(3); } else { if (mb_strlen($this->email)>30 || mb_strlen($this->email)<6) { $this->error(4); } elseif (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $this->email)) { $this->error(4); } } if (empty($this->password) && empty($this->password2)) { $this->error(6); } elseif ($this->password !== $this->password2) { $this->error(6); } if (empty($this->capcha)) { $this->error(7); } elseif ($this->capcha != $_SESSION['capcha']) { $this->error(7); unset($_SESSION['capcha']); } global $mysqli, $tb; $res = $mysqli->query('select `login` from ' . $tb . ' where `login`="' . $this->login . '" limit 1'); if (@$res->num_rows>0) { $this->error(8); } $res = $mysqli->query('select `email` from ' . $tb . ' where `email`="' . $this->email . '" limit 1'); if (@$res->num_rows>0) { $this->error(9); } if (sizeof($this->errors)>1) { $this->form(); } else { if ($mysqli->query('insert into ' . $tb . ' set `login`="' . $mysqli->real_escape_string($this->login) . '", `email`="' . $mysqli->real_escape_string($this->email) . '", `password`="' . md5($this->password) . '"')) { echo '
Регистрация прошла успешно
'; } else { echo '
Ошибка
'; } } } else { $this->form(); } #echo '
';print_r($this);
}
 
public function is_au() {
return isset($_SESSION['uid']) ? true : false;
}
 
 
public function is_post() {
if (sizeof($_POST)>0) {
foreach($_POST as $key => $val) {
if (!empty($val)) {
$this->$key = trim($val);
}
}
} else {
$this->reg = false;
#$this->form();
}

}

public function error($num_error) {
return $this->errors[] = $num_error;    
}

public function show_errors() {
$show = '
'; if (sizeof($this->errors)>1) { foreach ($this->errors as $error) { $show .= '
' . $this->error[$error] . '
'; } $show .= '
'; } return $show; } public function form() { echo $this->show_errors() . '
Имя

Электронный адрес

Пароль

Подтвердите пароль

' . $this->capcha(2) . '
'; } public function capcha($hard) { switch($hard){ case 2: $num = range(10, 99); $first = array_rand($num); $second = array_rand($num); $len = 68; $size = 6; break; case 3: $num = range(100, 999); $first = array_rand($num); $second = array_rand($num); $len = 86; $size = 8; break; default : $num = range(1, 9); $first = array_rand($num); $second = array_rand($num); $len = 50; $size = 4; break; }; $sum = $num[$first] + $num[$second]; $_SESSION['capcha'] = $sum; $img = $num[$first] . ' + ' . $num[$second]; $im = imagecreatetruecolor($len, 20); $text_color = imagecolorallocate($im, 255, 255, 255); imagestring($im, 5, 4, 2, $img, $text_color); $ft = time(); imagegif($im, $ft . '.gif'); imagedestroy($im); $fil = file_get_contents($ft . '.gif'); unlink($ft . '.gif'); return 'capcha =
'; } public function __destruct() { foreach ($this as $key => $value) { unset($this->$key); } } } ?>