Система регистрации на PHP
Автор: Алексей Макаров

Итак, нам нужно создать две папки: 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;) 

Hosted by uCoz