Warning: array_merge(): Argument #2 is not an array in /hsphere/local/home/magistr/codeismy.name/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

CMS своими руками. Регистрация и авторизация без релятивной базы

Дата: Апрель 13, 2009

(0) комментариев

В данной статье я покажу как сделать простую регистрацию пользователей в системе с использованием текстовых файлов и в следующей статье с использованием базы данных на языке php.
Регистрация пользователей необходима для отделения личных данных каждого посетителя сайта и персонификации данных в базе или коде странички, а так же возможность привлечения постоянных пользователей. Вы и сами можете придумать множество применений данного сервиса, но думаю его поезность является очевидной для всех.

Для начала рассмотрим как можно сделать простую регистрацию при помощи php и текстовых файлов.
Для этого создадим такую структуру файлов:
index.php главная страничка
reg.php страница регистрации
auth.php страница авторизации
user_db.db база с пользователями
Для начала надо определиться со структурой нашей базы. Мы будем хранить минимальное количество данных которое вы сами сможете всегда расширить. Следующие поля будут присутствовать:
login логин
pass пароль
role права
name имя
info другая информация
В файле для каждого юзера будет своя строка

1
user1%1-1%user_pas%1-1%user_role%1-1%user_name%1-1%user_info

Обратите внимание, что мы для разделения использовали символьную комбинацию %1-1% это может быть любая комбинация, которую заведемо пользователь не введёт, вы её можете всегда сменить или расширить. Она нужна будет в дальнейшем для разбития на массив.
Теперь нам надо сделать все формы для авторизации и регистрации.
Форма авторизации будет выглядеть так:

1
2
3
4
5
<form action=auth.php method=post>
<input type="text" name="login">
<input type="text" name="pass">
<input type="submit" value="Авторизироваться">
<a href=reg.php>Зарегис

Эта форма будет отображаться при входе на индексную страничку в том случае если пользователь не авторизирован..
Сам файл auth.php будет содержать следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
header("Content-type: text/html; charset=UTF-8 \\r\\n");
if(!isset($_POST['login'])) echo '<form action=auth.php method=post>
<input type="text" name="login"><br>
<input type="text" name="pass"><br>
<input type="submit" value="Авторизироваться"><br>
<a href=reg.php>Зарегистрироваться</a>
</form>'; else {
//Проверим есть ли пользователь в базе
$fp = file("user_db.db"); //считываем базу пользователей в массив
//ищем пользователя с паролем в базе
foreach($fp as $key=>$value) {
$user=explode("%1-1%",$value); //преобразуем строку пользователя в массив
if($_POST['login']==$user[0] and md5($_POST['pass'])==$user[1]) {
setcookie("cookie[login]",

Далее нам необходимо пользователям сделать возможность регистрации на сайте. Для шифрования паролей воспользуемся простой функцией md5, при желании можете заменить её на ваш алгоритм шифрования.
Регистрационный скрипт будет выглядеть следующим образом:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
header("Content-type: text/html; charset=UTF-8 \\r\\n");
if(!isset($_POST['login']) and !isset($_POST['pass']) and !isset($_POST['name'])) {//проверяем обязательные параметры
echo '<form action="reg.php" method="post">
<input type="text" name="login"><br>
<input type="text" name="pass"><br>
<input type="text" name="name"><br>
<textarea name="info"></textarea>
<input type="submit" value="Зарегистрироваться">
</form>';
}
else {//регистрируем пользователя
//проверяем есть ли такой пользователь уже в базе
//ищем пользователя с паролем в базе
$fp1=file("user_db.db");
foreach($fp1 as $key=>$value) {
$user=explode("%1-1%",$value); //преобразуем строку пользователя в массив
if($_POST['login']==$user['0'] and md5($_POST['pass'])==$user['1']) {
$us = 1; echo "Такой пользователь уже есть";}
}
if($us!=1) { //если пользователя нет то добавляем
$fp = fopen("user_db.db", "a+"); // Открываем файл в режиме записи
$mytext = preg_replace("!\\r\\n!","<br>", $_POST['login']."%1-1%".md5($_POS

Ну и теперь самое главное, объединим всё вместе и индексная cтраничка будет выглядеть так:
index.php

1
2
3
4
5
6
7
8
9
<?php
if(isset($_COOKIE['login'])) { //проверяем был ли уже ранее авторизирован наш пользователь
//и если да, то выполним нужный нам код
$fp = file("user_db.db"); //считываем базу пользователей в массив
//ищем пользователя с паролем в базе
foreach($fp as $key=>$value) {
$user=explode("%1-1%",$value); //преобразуем строку в массив
if($_COOKIE['login']==$user[0] and $_COOKIE['pass']==$user[1]) {
$us="вы авторизиро

Ну вот в общем то и всё на сегодня :)
ждём продолжение серсии с релятивной базой данных. :)

a

    Автор: Sergey




    Нет комментариев на "CMS своими руками. Регистрация и авторизация без релятивной базы"

    Нет комментариев.


    Вы можете продолжить обсуждение этой статьи на форуме


    Имя : 
    Почта : 
    Сайт : 
    Комментарий : 

    Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

    Создание сайта - Echo-group Раскрутка сайтов