Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Форма регистрации пользователя (http://forum.oszone.net/showthread.php?t=124169)

lepota 26-11-2008 14:49 964135

Форма регистрации пользователя
 
Господа товарищи спецы! Мне надо сделать на сайте (РНР )регистрацию я создал папку reg и закинул туда файлы регистрации . Создал в базе таблицу users с 5ю полями nick. pass .pass_again .mail. ip. date. а дальше ошибки пошли незнаю как это все дело воедино связать. Искал в инете занимающихся установкой скриптов но там только всее целиком делают а дополнительно не ставят. (Я в этом деле особо не волоку) может кто выручит . ГОТОВ НЕСТИ РАСХОДЫ все понимаю. вот посмотгите код.

вход

<?php
// Если посетитель "вошёл" - приветствуем его
if(isset($_SESSION['user']))

{
echo "<p class='text_title_post'>Добро пожаловать,<br>".$_SESSION['user']."!</p>
<p align='center'><a href='out.php'><strong>Выход</strong></a></p>


";
}
else
{


echo "

<table align='center' class='enter_form' width='100' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td><label class='enter_text'>Логин:</label></td>
<td><input class='enter_imput' type='text' name='login' id='login' size='15' maxlength='15' > </td>
</tr>
<tr>
<td><label class='enter_text'>Пароль:</label></td>
<td><input class='enter_imput' type='password' name='pass' id='pass' size='15' maxlength='10' > </td>
</tr>
<tr>
<td>
<br>
<a href='http://localhost/........./reg.php'><div align='left'>Регистрация</div></a>
<br>
</td>
<td>
<br>
<input class='bat' type='submit' name='enter' id='enter' value='Войти'>
</td>

</tr>

</table>
";
}
?>

регистрация

<!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=windows-1251" />
<title>Processing</title>
</head>

<body bgcolor="#000000">
<?php include("blocks/bd.php");/*Подключаемся к базе*/

if(isset($_POST['nick'])) {$nick = $_POST['nick'];}
if(isset($_POST['pass'])) {$pass = $_POST['pass'];}
if(isset($_POST['pass_again'])) {$pass_again = $_POST['pass_again'];}
if(isset($_POST['mail'])) {$mail = $_POST['mail'];}
if(isset($_POST['ip'])) {$ip = $_POST['ip'];}
if(isset($_POST['date'])) {$date = $_POST['date'];}



//Кодирование тегов
$nick = htmlspecialchars($nick);
$pass = htmlspecialchars($pass);
$pass_again = htmlspecialchars($pass_again);

//Кодирование обратных слешей
$nick = stripslashes($nick);
$pass = stripslashes($pass);
$pass_again = stripslashes($pass_again);

//Удаление пробелов
$nick = trim($nick);
$pass = trim($pass);
$pass_again = trim($pass_again);




//Проверка логина
if(empty($nick))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Вы не ввели логин! Пожалуйста, введите логин!</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();


}

//Проверка пароля
if(empty($pass) || empty($pass_again) || $pass != $pass_again)
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Введённые пароли не совпадают!</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}

//Проверка мыла
if(empty($mail))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Вы не ввели e-mail! Пожалуйста, введите e-mail!</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}

if (!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $mail))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Введите e-mail в виде <i>something@server.ru</i> <br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}


//Если все поля заполнены, продолжение проверки
if(strlen("$nick") < 3)
{
print"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Слишком короткий логин!<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}
if(strlen("$pass") < 5)
{
print"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка! Слишком короткий пароль!<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}



//Проверка
$rus = array("А","а","В","Е","е","К","М","Н","О","о","Р","р","С","с","Т","Х","х");
// Массив латинских букв
$eng = array("A","a","B","E","e","K","M","H","O","o","P","p","C","c","T","X","x");
// Заменяем русские буквы латинскими
$eng_nick = str_replace($rus, $eng, $nick);
// Заменяем латинские буквы русскими
$rus_nick = str_replace($eng, $rus, $nick);
// Формируем SQL-запрос
$result = "SELECT nick FROM register
WHERE nick LIKE '$nick' OR
nick LIKE '$eng_nick' OR
nick LIKE '$rus_nick'";
$myrow = mysql_query($result);


if($myrow)
{
if(mysql_num_rows($myrow)>0)
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ник \"$nick\" к сожалению, уже зарегистрирован. Попробуйте другой.<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='7 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}
}

$result1 = "SELECT mail FROM register
WHERE mail LIKE '$mail'";
$myrow1 = mysql_query($result1);

if($myrow1)
{
if(mysql_num_rows($myrow1)>0)
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Адрес \"$mail\" к сожалению, уже зарегистрирован. Попробуйте другой.<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='7 ; URL=form_reg.php'>
</HEAD></HTML>";
exit();
}
}

//Регистрация пользователя
$nick = mysql_escape_string($nick);
$pass = mysql_escape_string($pass);
$result2 ="INSERT INTO register (nick, pass, mail, ip, date) VALUES ('$nick', '$pass', '$mail', '$ip', '$date')";



if( mysql_query($result2))
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#606060; '><strong>Вы успешно зарегистрированы!<br>
Ваш ник: $nick<br>
Ваш пароль: $pass <br></strong></span></td>
</tr>
</table></p>";

echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='10 ; URL=index.php'>
</HEAD></HTML>";

mysql_close();
}
else
{
echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка регистрации!<br></strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='5 ; URL=form_reg.php'>
</HEAD></HTML>";
exit(mysql_error());
}

?>
</body>
</html>


авторизация

<!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=windows-1251" />
<title>Processing</title>
</head>

<body bgcolor="#000000">
<?php include("blocks/bd.php");/*Подключаемся к базе*/

if(isset($_POST['login'])) {$login = $_POST['login'];}
if(isset($_POST['pass'])) {$pass = $_POST['pass'];}

//Кодирование тегов
$login = htmlspecialchars($login);
$pass = htmlspecialchars($pass);

//Кодирование обратных слешей
$login = stripslashes($login);
$pass = stripslashes($pass);

//Удаление пробелов
$login = trim($login);
$pass = trim($pass);

// Формируем и выполняем SQL-запрос для посетителя с
// именем $_POST['name']
$query = "SELECT pass FROM register WHERE nick='$login'";
$nme = mysql_query($query);
if(!$nme)
{

echo"<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка выполнения запроса! Пожалуйста, напишите об этом администратору.</strong></span></td>
</tr>
</table></p>";
exit();


}
// Если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($nme) > 0)
{
// Получаем пароль
$password = mysql_result($nme, 0);
// Сравниваем пароль из базы данных и введённый посетителем
if ($pass == $password)
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сессии посетитель не вводил своё имя, пароль повторно -
// передаём их через сессию
if(session_start())
{
$_SESSION['user'] = $_POST['login'];
$_SESSION['password'] = $_POST['pass'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедиться, что
// посетитель "вошёл"
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD><body>";
}
}
else
{
echo"<br>
<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка идентификации: неправильный пароль</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='4 ; URL=index.php'>
</HEAD></HTML>";
exit();
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo"<br>
<p align='center'><br>
<table align='center' bgcolor='000000' width='580' border='1' cellspacing='0' cellpadding='0'><tr>
<td align='center'><span style='font-size:23px; color:#FF0000; '><strong>Ошибка идентификации: посетитель не зарегистрирован</strong></span></td>
</tr>
</table></p>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='4 ; URL=index.php'>
</HEAD></HTML>";
exit();
}
?>
</body>
</html>

выход

<?php session_start();?>
<!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=windows-1251" />
<title>Processing</title>
</head>

<body bgcolor="#000000">
<?php


unset($_SESSION['user']);
unset($_SESSION['password']);

session_destroy();

echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD><body>";
?>

</body>
</html>

mar 26-11-2008 15:48 964201

Цитата:

Цитата lepota
а дальше ошибки пошли »

может быть, лучше не искать неизветно чего в длинном-длинном листинге, а посмотреть сразу ошибки? (кстати, тогда и яснее было бы, что именно искать в листинге)

Arrest 26-11-2008 17:17 964297

и еще желательно листинг обернуть в [рhp][/php]

Porecla 26-11-2008 22:44 964624

А как ты ошибки то увидел?
Запиши какие строчки.
Давай эти строчки и тогда можно разбираться, а так это равносильно- гландам через анус )


Время: 23:55.

Время: 23:55.
© OSzone.net 2001-