Файл: register.php
Строк: 84
<?php
session_start();
include ('inc/db.php');
$title = 'Букмекерская контора - регистрация';
include 'inc/head.php';
include 'inc/functions.php';
/*
** Функция для генерации соли, используемоей в хешировании пароля
** возращает 3 случайных символа
*/
function GenerateSalt($n=3)
{
$key = '';
$pattern = '1234567890abcdefghijklmnopqrstuvwxyz.,*_-=+';
$counter = strlen($pattern)-1;
for($i=0; $i<$n; $i++)
{
$key .= $pattern{rand(0,$counter)};
}
return $key;
}
if (empty($_POST))
{
?>
<div class="name">Введите Ваши данные</div>
<div class="blockout">
<div class="blockin">
<form action="register.php" method="post" >
Логин:<br/>
<input type="text" name="login" /><br/>
WMR-кошелек:<br/>
<input type="text" name="wmr" value = "R"/><br/>
Пароль:<br/>
<input type="password" name="password" /><br/>
Повторите пароль:<br/>
<input type="password" name="password1" /><br/>
<img src="pic.php" alt="..."/><br/>
Введите число на картинке:<br/>
<input type="text" name="psw" /><br/>
<input type="submit" value="Зарегистрироваться" />
</form>
</div></div>
<div class="name">Навигация:</div>
<div class="blockout">
<div class="blockin">
<div class="link"><a href="index.php">На главную</a></div>
</div></div>
<?php
}
else
{
// обрабатывае пришедшие данные функцией mysql_real_escape_string перед вставкой в таблицу БД
$login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
$password = (isset($_POST['password'])) ? mysql_real_escape_string($_POST['password']) : '';
$login=htmlspecialchars(stripslashes(trim($login)));
$password=htmlspecialchars(stripslashes(trim($password)));
$login=str_replace("$","$$",$login);
$password=str_replace("$","$$",$password);
$password1 = (isset($_POST['password1'])) ? mysql_real_escape_string($_POST['password1']) : '';
$password1=htmlspecialchars(stripslashes(trim($password1)));
$password1=str_replace("$","$$",$password1);
$psw = (isset($_POST['psw'])) ? mysql_real_escape_string($_POST['psw']) : '';
$psw=htmlspecialchars(stripslashes(trim($psw)));
$psw=str_replace("$","$$",$psw);
$wmr = (isset($_POST['wmr'])) ? mysql_real_escape_string($_POST['wmr']) : '';
$wmr=htmlspecialchars(stripslashes(trim($wmr)));
$wmr=str_replace("$","$$",$wmr);
// проверяем на наличие ошибок (например, длина логина и пароля)
$error = false;
$errort = '';
if (empty($wmr)) {
$error = true;
$errort .= 'Заполните WMR-кошелек!<br/>';
}
if (strlen($wmr) != 13)
{
$error = true;
$errort .= 'Длина WMR-кошелька должна быть 13 символов.<br />';
}
if (!preg_match("/^R.[0-9]+$/",$wmr))
{
$error = true;
$errort .= 'Неверные сиволы в WMR-кошельке!<br/>';
}
if (empty($psw)) {
$error = true;
$errort .= 'Введите число с картинки!<br/>';
}
if ($_SESSION['pswd']!=$psw) {
$error = true;
$errort .= 'Число на картинке и ваше не совпадают!<br/>';
}
if (!preg_match("/^[a-zA-Z0-9._-]+$/",$login))
{
$error = true;
$errort .= 'Неверные сиволы в логине!<br/>';
}
if(!preg_match("!^[a-z0-9]+$!i",$password))
{
$error = true;
$errort .= 'Неверные символы в пароле!<br/>';
}
if (strlen($login) < 2)
{
$error = true;
$errort .= 'Длина логина должна быть не менее 2х символов.<br />';
}
if (strlen($password) < 6)
{
$error = true;
$errort .= 'Длина пароля должна быть не менее 6 символов.<br />';
}
if ($password != $password1)
{
$error = true;
$errort .= 'Введеные вами пароли не совпадают!<br />';
}
// проверяем, если юзер в таблице с таким же логином
$query = "SELECT `id_user`
FROM `user`
WHERE `login`='{$login}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql)==1)
{
$error = true;
$errort .= 'Пользователь с таким логином уже существует в базе данных, введите другой.<br />';
}
// проверяем, если кошелек в таблице
$query = "SELECT `id_user`
FROM `user`
WHERE `wmr`='{$wmr}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql)==1)
{
$error = true;
$errort .= 'Пользователь с таким WMR-кошельком уже существует в базе данных, введите другой.<br />';
}
// если ошибок нет, то добавляем юзаре в таблицу
if (!$error)
{
// генерируем соль и пароль
$salt = GenerateSalt();
$hashed_password = md5(md5($password) . $salt);
$query = "INSERT
INTO `user`
SET
`login`='{$login}',
`password`='{$hashed_password}',
`salt`='{$salt}',
`adm` = '0',
`money` = '{$bonus}',
`wmr`='{$wmr}'";
$sql = mysql_query($query) or die(mysql_error());
?>
<div class="blockout">
<div class="blockin">
Поздравляем, Вы успешно зарегистрированы!
</div>
</div>
<div class="blockout">
<div class="blockin">
<div class="link"><a href="index.php">На главную</a></div>
</div></div>
<?
}
else
{
?>
<div class="name">Возникли следующие ошибки:</div>
<div class="blockout">
<div class="blockin">
<?
print $errort;
?>
</div>
</div>
<div class="name">Навигация:</div>
<div class="blockout">
<div class="blockin">
<div class="link"><a href="register.php">Назад</a></div>
<div class="link"><a href="index.php">На главную</a></div>
</div></div>
<?
}
}
include ('inc/foot.php');
?>