Ответ
Nickolay 24.01.2010 22:37
Это функция:
function reg_in(){
//global $out;
include_once("db_connect.inc");
if (isset($_POST['submit']))
{
if(empty($_POST['login']))
{
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg"> Вы не ввели логин </a></center>'; // Здесь нужно ввести сохранение уже введённых данных!!!
}
elseif(empty($_POST['password']))
{
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg"> Вы не ввели пароль </a></center>';
}
elseif(empty($_POST['password2']))
{
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg"> Вы не ввели подтверждение пароля </a></center>';
}
elseif($_POST['password'] != $_POST['password2'])
{
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg"> Введенные пароли не совпадают </a></center>';
}
elseif(empty($_POST['email']))
{
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg"> Вы не ввели E-mail </a></center>';
}
else
header('Refresh:5; URL=index.php');
//{
$login=trim($_POST['login']);
if(!eregi("[А-Яа-яA-Za-z' -]{1,50}",$login))
{
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg"> Необходимо правильно заполнить поле "Имя" </a></center>';
return;
//header('Refresh:3; URL=index.php?action=add_reg');
}
$password=trim($_POST['password']);
if (strlen($password) < 3)
{
$_GET['$out[center]'].='<br><br><br> <center> <a href="?action=add_reg">Пароль не должен быть короче, чем 3 символа!</a></center>';
return;
}
if (!eregi("^[A-Za-z0-9]{3,20}", $password) and $password != "")
{
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg">Имя должно состоять из латинских букв и/или цифр!</a></center>';
return;
}
$email=trim($_POST['email']); // функцию pregtrim() возьмите выше в примере
// если пусто - выход
//if (strlen($email)==0) return -1;
if (!preg_match("/^[a-z0-9_-]{1,20}+(\.){0,2}+([a-z0-9_-]){0,5}@(([a-z0-9-]+\.)+(com|net|org|mil|".
"edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
"9]{1,3}\.[0-9]{1,3})$/is",$email)){
$_GET['$out[center]'].= '<br><br><br> <center> <a href="?action=add_reg"> Необходимо правильно заполнить поле "Email" </a></center>';
//return -1;
return $email;
}
$password = $_POST['password'];
$password2 = $_POST['password2'];
$email = $_POST['email'];
$query = "SELECT `id`
FROM `usersdb`
WHERE `nick`='{$login}' AND `pass`='{$password}'
"; //AND `pass`='{$password}' убрал и проверку пароля, потому что получается, по одному логину с разными паролями можно войти... (если регистрировался!!!)
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) > 0)
{
$_GET['$out[center]'].= '<br><br><br> <center> Такой логин уже существует </center>';
}
else
{
$query = "INSERT INTO `usersdb`(`nick`, `pass`, `email`, `status`)
VALUES ('$login', "."md5($password)".", '$email', 1)";
$result = mysql_query($query) or die(mysql_error());;
//header("Location: $_SERVER[PHP_SELF]");
$_GET['$out[center]'].= 'Регистрация прошла успешно';
}
//}
}
return;
}
Это форма:
<?php
$_GET['$out[center]'].="<border-left-widht=100px
<script type=\"text/javascript\">
function valid(){
if(frmLogin.login.value==''){
document.getElementById('message').innerHTML='Заполните логин';
frmLogin.login.focus();
return false;
}
if(frmLogin.password.value==''){
document.getElementById('message').innerHTML='Заполните пароль';
return false;
}
if(frmLogin.password2.value!=frmLogin.password.value){
document.getElementById('message').innerHTML='Пароли не совпадают';
return false;
}
if(frmLogin.email.value==''){
document.getElementById('message').innerHTML='Заполните e-mail';
return false;
}
return true;
}
</script>
<fieldset
<html>
<head>
<title>Скрипт регистрации</title>
</head>
<body>
<table align=center
<b> Поля, обозначенные звёздочкой * , обязательны к заполнению </b><br><br>
<form action='?action=reg_in' method='POST' onsubmit=\"return valid()\" name=frmLogin>
<tr>
<td>Имя: *</td>
<td><input type=text name=login></td><div id='message'></div>
</tr>
<tr>
<td>Пароль: *</td>
<td><input type=password name=password></td>
</tr>
<tr>
<td>Повторите пароль: *</td>
<td><input type=password name=password2></td>
</tr>
<tr>
<td>Email: *</td>
<td><input type=text name=email></td>
</tr>
<tr>
<td align=center colspan=2><input type=submit value=Зарегистрироваться name=submit></td>
</tr>
</form>
</table>
</body>
</html>";
$_GET['$out[center]'].="</fieldset>";
?>