Система регистрации на PHP
Автор: Almak
Сайт: http://www.scanet.ru/
Рейтинг: N/A из 7
<<НАЗАД
Итак, нам нужно создать две папки: templates (здесь будут хранится шаблоны) и users (здесь будут файлы пользователей).
Создаем в корневой директории файл reg.htm и пишем в него следующее:
<html>
<head>
<title>Форма регистрации</title>
<form action="reg.php" method="post"><br>
*Ник: <input type="text" name="nick"><br>
Имя: <input type="text" name="name"><br>
*Мыло: <input type="text" name="email"><br>
*Пароль: <input type="text" name="pass"><br>
*Повторите пароль: <input type="text" name="pass2"><br>
Аська: <input type="text" name="icq"><br>
Сайт: <input type="text" name="site"><br>
Биография: <input type="text" name="bio"><br>
Хобби: <input type="text" name="hobby"><br>
Подпись: <input type="text" name="ps"><br>
<input type="submit" name="Все именно так!"><br>
</form>
</head>
</html>
Это простейшая HTML-форма и думаю, что в комментариях не нуждается.
Теперь создаем файл reg.php:
<?php
$file_name=$users_dir.$nick; //Генерируем имя файла
clearstatcache(); //Чистим кэш
$fe=file_exists($file_name); //Проверяем, существует ли файл с именем $file_name
if ($fe==TRUE) {echo "С таким ником уже зарегистрировались!";}
elseif ($pass!=$pass2){echo "Пароли не совпадают?!";}
$fp=fopen($file_name,"w"); //Открытие дескриптора файла пользователя на запись
//Запись всех переданных формой данных в файл пользователя, через /n
fwrite($fp,$nick."\n");
fwrite($fp,$name."\n");
fwrite($fp,$email."\n");
fwrite($fp,$pass."\n");
fwrite($fp,$icq."\n");
fwrite($fp,$site."\n");
fwrite($fp,$bio."\n");
fwrite($fp,$hobby."\n");
fwrite($fp,$ps."\n");
echo "Все ОК!"; //Пишем, что все удалось
?>
Делаем config.php:
//Ну совсем простой файл
<?php
$users_dir='users/'; //Директория с пользователями
$templates_dir='templates/'; //Директория с шаблонами
?>
Далее - login.htm:
<html>
<head>
<title>Логин</title>
<form action=login.php method=post>
<input type=text name=nik>
<input type=text name=pass>
<input type=submit>
</form>
</head>
</html>
И login.php:
<?php
header("Cache-Control: no-cache, must-revalidate"); //Не кэшировать!!
header("Pragma: no-cache");
//Ставим Куки
setcookie("scanik","$nik");
setcookie("scanet_password","$pass");
require("config.php");
$fe=file_exists($users_dir.$nik); //Проверка существования файла
clearstatcache(); //Чистим кэш
if ($fe==FALSE){echo "НЕправильный ник!"; exit;} //Нет файла
$fp=fopen($users_dir.$nik,"r"); //Если есть файл, открываем на чтение
$pb=fgets($fp,4096); //Читаем строки, вплоть до 4. В 4 строке хранится пароль, кладем его в переменную $pbb
$pb=fgets($fp,4096);
$pb=fgets($fp,4096);
$pb=fgets($fp,4096);
$pbb=chop($pb);
if ($pbb!=$pass){echo "Не правильный пароль!"; exit;} //Проверка правильности пароля
//Если пароль верен - выводим информацию пользователя
if ($pbb==$pass){ echo "OK!<br>";
$usr=$nik; include ("userinfo.php"); } ?>
И наконец...пишем файл вывода информации о пользователе:
<?php
$fe=file_exists($users_dir.$usr);
require("config.php");
if($fe==FALSE){include($templates_dir."nouser.html");}
elseif($fe==TRUE){
$fcontens=file($users_dir.$usr);
while(list($line_num,$line)=each($fcontens)) {
echo $line_num." ".htmlspecialchars($line)."
";
}
}
?>
А в папку templates кидаем файл nouser.htm - шаблон вывода ошибки.
Вот и все.
<<НАЗАД
ОЦЕНИТЬ СТАТЬЮ
ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :
раз.
|