Система регистрации на PHP
🕛 20.03.2007, 14:44
Автор: Алексей МакаровИтак, нам нужно создать две папки: 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 - шаблон вывода ошибки.
Вот и все. Enjoy;)