Default
Эксперт
Дата регистрации:
12.06.2012 15:20:27
Сообщений: 102
<?php session_start();
// выставляем кодировку по умолчанию
mb_internal_encoding("UTF-8"
// включение всех ошибок
error_reporting(E_ALL);
// функция кр звезды
function zv($color = "red", $text = "*"{
echo "<font color = ".$color.">".$text."</font>";
}
// минимальная и максимальная длина вводимых данных
function maxSize($text, $text){
return (mb_strlen($text) >= 3 && mb_strlen($text) <= 15 );
}
// обработка данных
function clearText($test){
return mysql_real_escape_string(htmlspecialchars(trim($test)));
}
// создаем переменные для устранения ошибки NOTICE
$login = '';
$error = '';
$pass = '';
$clear_pass = '';
///////////////////////////////////////
// принимаем данные пришедшие из формы
////////////////////////////////////////
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset ($_POST['ok'])){
if(isset($_POST['login']) && maxSize($_POST['login'],$_POST['login']))
$login = clearText($_POST['login']);
else $error .= "Неверно указан логин.<br />";
if(isset($_POST['pass']) && maxSize($_POST['pass'],$_POST['pass'])){
$pass = clearText($_POST['pass']);
if(isset($_POST['clear_pass']) && maxSize($_POST['clear_pass'],$_POST['clear_pass']))
$clear_pass = clearText($_POST['clear_pass']);
if ($pass != $clear_pass)
$error .= "Пароли не совпадают.<br />";
}else{ $error .= "Неверно указан пароль.<br />";}
if (empty ($_POST['pravila'])) $error .= "Необходимо согласиться с правилами.<br />";
}
///////////////////////////////////////////////
// если буфер ошибок пуст то подключаемся к ДБ
///////////////////////////////////////////////
if (empty($error)){
include "config.php";
// делаем запрос к таблице и проверяем на существование такого ника в БД
$query = mysql_query ("SELECT COUNT(*) FROM users WHERE login = '$login'"
if (!$query) exit("Ведутся технические работы, поэтому корректное отображение страницы невозможно."
$result = mysql_result ($query, 0);
if ($result > 0 ) $error .= "Логин \"".$login."\" занят.<br />";
}
////////////////////////////////////////////////
// если буфер ошибок пуст, то вносим данные в БД
////////////////////////////////////////////////
if (empty($error)){
$query = mysql_query ("INSERT INTO users(login,
pass,
reg_date)
VALUES('$login',
'$pass',
NOW())"
if (!$query) $error .= exit("Ведутся технические работы, поэтому корректное отображение страницы невозможно!"
}
////////////////////////////////////////////////////////////////////////////
// если буфер ошибок пуст, то делаем выборку id из ДБ записываем в сессию
////////////////////////////////////////////////////////////////////////////
if(empty($error)){
$query = mysql_query("SELECT id FROM users WHERE login = '$login'"
if (!$query) exit("Ведутся технические работы, поэтому корректное отображение страницы невозможно."
$result_id = mysql_fetch_assoc($query);
if (!$result_id) exit("Ведутся технические работы, поэтому корректное отображение страницы невозможно."
$id = $result_id['id'];
$_SESSION['$login'] = $login;
$_SESSION['pass'] = $pass;
$_SESSION['id'] = $id;
if (isset($_SESSION['$login']) && isset($_SESSION['pass']) && $_SESSION['id']){
// направляем на другую страницу
header ("Location:index.php"
}
}
echo "$error";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регистрация</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
echo "<p>$error</p>";
?>
<form action = "reg.php" method = "POST">
<?php echo zv();?>Логин:<br />
<input type = "text" name = "login" maxlength="15" value="<?php echo $login;?>" /><br />
<?php echo zv();?>Пароль:<br />
<input type = "password" name = "pass" maxlength="15" value="<?php echo $pass;?>" /><br />
<?php echo zv();?>Повторите пароль:<br />
<input type = "password" name = "clear_pass" maxlength="15" value="<?php echo $clear_pass;?>" /><br />
<input name="pravila" type="checkbox" /> Я согласен с <a href = '#'>правилами</a>.<br />
<input type = "submit" name = "ok" value = "Регистрация" />
</form>
</body>
</html>