SULI COMPANY | Научно-технический сайт Сулико Асабашвили » Программирование » PHP » Система регистрации пользователей на сайте
Информация к новости
  • Просмотров: 911
  • Автор: sulicompany
  • Дата: 3-08-2013, 22:43
 (голосов: 0)
3-08-2013, 22:43

Система регистрации пользователей на сайте

Категория: Программирование » PHP


Ну что приступим?

1)      Создадим базу данных mysite

2)      Зальем дамп таблицы users (код дампа ниже)

3)      Сделаем форму регистрации и обработчик на PHP

4)      Сделаем форму входа и обработчик

5)      Сделаем мини-профиль после логина

Итак, начнем по плану. Делаем в PhpMyAdmin базу данных mysite. Если вы не знаете, как это делается, то прочтите статью .

 

Теперь сделайте импорт этого кода в вашу базу (также, если не знаете, как делать дамп в БД прочтите статью):

1
2
3
4
5
6
7
8
9
CREATE TABLE  `users` (
 `id` INT( 5 ) NOT NULL AUTO_INCREMENT ,
 `login` VARCHAR( 200 ) NOT NULL ,
 `password` VARCHAR( 400 ) NOT NULL ,
 `name` VARCHAR( 200 ) NOT NULL ,
 `surname` VARCHAR( 200 ) NOT NULL ,
 `city` VARCHAR( 200 ) NOT NULL ,
PRIMARY KEY (  `id` )
);

После создания БД и таблицы в ней, вам нужно сделать вот такую структуру файлов в корневой папке сайта. У меня это папка localhost/reg.

Структура файлов для регистрации

Если у вас еще не установлен TopServer или Denwer, то прочитайте эту статью.

Теперь по очереди будем вставлять код. Так как везде в скриптах присутствуют комментарии, описывать их не буду. Напишу лишь алгоритм работы ;) :

1)     Если в сессии пользователя (кукисы) есть переменные логин и айди, то отображаем его профиль

2)     Если таковые отсутствуют, то отображаем форму регистрации и входа

Итак, вот такие скрипты содержатся в файлах которые вы создали.

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<html>
 
<title>Система регистрации на PHP</title>
 
<head>
</head>
 
<body>
<?php
//Запускаем сессию для работы с кукис файлами
session_start();
//Если отсутствуют логин и айди,
//отображаем форму входа и регистрации
if(!isset($_SESSION['login']) || !isset($_SESSION['id']))
{
?>
<center>
<form action="register.php" method="POST">
<h3>Регистрация</h3>
Логин: <br> <input type="text" name="login">
<br>
Пароль: <br> <input type="password" name="password">
<br>
Имя: <br> <input type="text" name="name">
<br>
Фамилия: <br> <input type="text" name="surname">
<br>
Город: <br> <input type="text" name="city">
<br>
<input type="submit" value="Зарегистрироваться">
</form>
 
<form action="login.php" method="POST">
<h3>Вход</h3>
Логин: <br> <input type="text" name="login">
<br>
Пароль: <br> <input type="password" name="password">
<br>
<input type="submit" value="Вход">
</form>
</center>
<?php
}
//Если сессия запущена, то есть присутствуют файлы
//кукис, и в них есть логин и айди
//то отображаем профиль пользователя
//Для этого достаем из базы все данные по логину
//и выводим их на странице
if(isset($_SESSION['login']) && isset($_SESSION['id']))
{
 
    include("bd.php");
    $user=$_SESSION['login'];
    $res=mysql_query("SELECT * FROM `users` WHERE `login`='$user' ");
    $user_data=mysql_fetch_array($res);
 
    echo "<center>";
    echo "Ваш логин: <b>". $user_data['login']."</b><br>";
    echo "Ваше имя: <b>". $user_data['name']."</b><br>";
    echo "Ваша фамилия: <b>". $user_data['surname']."</b><br>";
    echo "Место жительства: <b>". $user_data['city']."</b><br>";
    echo "<a href='exit.php'>Выход</a>";
    echo "</center>";
}
?>
</body>
 
</html>

register.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
 
//Проверяем пришли ли данные
if(isset($_POST['login']) && isset($_POST['password']))
{
//Записываем все в переменные
    $login=htmlspecialchars(trim($_POST['login']));
    $password=htmlspecialchars(trim($_POST['password']));
    $name=htmlspecialchars(trim($_POST['name']));
    $surname=htmlspecialchars(trim($_POST['surname']));
    $city=htmlspecialchars(trim($_POST['city']));
 
//Проверяем на пустоту
    if($login=="" || $password=="" || $name=="" || $surname=="" || $city=="")
    {
        die("Заполните все поля!");
    }
 
//Подключаем базу данных
    include("bd.php");
 
//Достаем из БД информацию о введенном логине
    $res=mysql_query("SELECT `login` FROM `users` WHERE `login`='$login' ");
    $data=mysql_fetch_array($res);
 
//Если он не пуст, то значит такой уже есть
    if(!empty($data['login']))
    {
        die("Такой логин уже существует!");
    }
 
//Проверяем длину пароля
    if(strlen($password)<7)
    {
        die("Длина пароля не может быть меньше 7 символов!");
    }
 
//Вставляем данные в БД
    $query="INSERT INTO `users` (`login`,`password`,`name`,`surname`,`city`) VALUES('$login','$password','$name','$surname','$city') ";
    $result=mysql_query($query);
 
//Если данные успешно занесены в таблицу
    if($result==true)
    {
        echo "Вы успешно зарегистрированы! <br><a href='index.php'>На главную</a>";
    }
//Если не так, то выводим ошибку
    else
    {
        echo "Error! ----> ". mysql_error();
    }
}
?>

login.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
 
//Если пришли данные на обработку
if(isset($_POST['login']) && isset($_POST['password']))
{
//Подключаемся к базе данных
    include("bd.php");
 
//Записываем все в переменные
    $login=htmlspecialchars(trim($_POST['login']));
    $password=htmlspecialchars(trim($_POST['password']));
 
//Достаем из таблицы инфу о пользователе по логину
    $res=mysql_query("SELECT * FROM `users` WHERE `login`='$login' ");
    $data=mysql_fetch_array($res);
 
//Если такого нет, то пишем что нет
    if(empty($data['login']))
    {
        die("Такого пользователя не существует!");
    }
//Если пароли не совпадают
    if($password!=$data['password'])
    {
        die("Введенный пароль неверен!");
    }
//Запускаем пользователю сессию
    session_start();
 
//Записываем в переменные login и id
    $_SESSION['login']=$data['login'];
    $_SESSION['id']=$data['id'];
//Переадресовываем на главную
    header("location: index.php");
}
 
?>

exit.php

1
2
3
4
5
6
7
8
9
10
11
<?php
//Запускаем сессию для работы с куками
session_start();
//Так как пользователь хотел выйти,
//удаляем ему логин и id из кукисов
unset($_SESSION['login']);
unset($_SESSION['id']);
 
//Переадресовываем на главную
header("location: index.php");
?>

bd.php

1
2
3
4
5
6
7
8
9
<?php
//Подключаемся к mysql серверу
//имя - localhost
//юзер - root
//пароль - нету
$mysql_connect=mysql_connect("localhost","root","");
//Выбираем базу данных mysite
$db=mysql_select_db("mysite");
?>

Вот теперь, когда вы все скопировали, можете запустить и сами посмотреть как все работает.