Движок для проекта на php + smarty

Бюджет: по договоренности
Необходимо реализовать несколько статических страниц сайта + регистрацию / авторизацию пользователей для сайта с его кабинетом. 
 
1. Статические страницы
Для каждой статической страницы должен быть свой темплейт. Для каждой статической страницы не делаем пхп обработчик, как вариант можно сделать 1 обработчик на все статические страницы.
Статические страницы внешне должны быть html, в движке – tpl (через реврайт)
Страницы будут такие – главная index (или корень "/" ) и второго уровня /page/about.html, /page/faq.html
Второго уровня страницы могут создавать просто по созданию шаблона и доступны по урлу /page/NAME_TPL.html
Где NAME_TPL – название шаблона.
С любой странице (в общем шаблоне, шапке сайта прописать ссылку на страницу с авторизацией – /auth/) должна быть возможность перейти на страницу авторизация. Так же там должны быть ссылки на страницу регистрации (/auth/reg.php) и восстановление пароля (/auth/forget.php)
 
2.1. Регистрация (При регистрации пользователь указывает):   
- емаил [он же логин] (на емаил отправляется случайно сгенерированный пароль)  

Создаем пользователя, задаем рандомный пароль из 6-7 символов формата [a-Z0-9]. 
Сгенерированный пароль высылается на указанную почту. 
После отсылки письма, выводим текст – "Письмо с паролем было отправлено на почту!" 

2.2. Авторизация (Для входа используется):  
- емаил  
- пароль  
- кнопка "Войти"  
после успешной авторизации пользователя должно прокидывать на отдельную страницу – /cabinet/, с текстом "Авторизация прошла успешно"  – должен быть отдельный темплейт, чтобы я мог поменять сам. 
В случае ошибки – оставить пользователя на странице для ввода логина и пароля, но написать "Ошибка авторизации, попробуйте еще раз." 

2.3. Восстановление пароль:  
- емаил (на емаил отправляется ссылка для смены пароля)  
- кнопка " Восстановить пароль"
На email отправляется уникальная ссылка на которой пользователь может указать новый пароля для своего аккаунта
ссылка для восстановления должна жить не больше 12 часов после генерации.  

2.4. Указание пароля (Восстановление пароль)
Страница смена пароля, на ней пользователь в 2-х инпутах вводит пароль (вводим первый и второй раз, для проверки).
На эту страницу пользователь может попасть только перейдя по ссылке из письма.
Если пароли совпадают, то меняем пароль на указанный пользователем. После смены пароля, ссылка больше не должна давать возможность сменить пароль (перейдя по этой ссылке после смены пароля выводим 404 ошибку).

2.5. Необходимо сделать страницу смены пароля для авторизованного пользователя.
Если пользователь успешно авторизован, то у него на странице /cabinet/, с текстом "Авторизация прошла успешно" должна быть ссылка "Смена пароля" на этой странице, только авторизованный пользователь может изменить свой пароль. 
Введя свой текущий и 2 раза новый.
В случае успеха сообщить "Пароль был успешно изменен", если возникла ошибка вывести ошибку с описанием.


По сути это движок проекта.
Дальше к нему будем добавлять функционал...

Обязательные свойства разработки:  
- php5 
- smarty 
- ООП 
- все файлы и весь проект должен быть в кодировке utf-8 
- полный "<?php ?>", без сокращений "<? ?>" 
- использование чпу 
- пароли должны быть зашифрованы в "md5 + соль"
- красивый понятный код  
- авторизацию сделать с использованием базы mysql таблицы вида myisam в кодировке utf-8 
- классы должны быть вынесены в отдельную папку 
- для отсылки писем используем smtp почту на gmail.com с логином и паролем 
- необходимо использовать общий шаблон в котором была прописана шапка и футер сайта, которая будет использоваться на всех страницах. 
- необходимо сделать минимальное визуальное оформление, предложите свой вариант. 
- скрипт может быть запущен из любой папки, localhost/любая папка/ или же только localhost/
- после отправки введенных данных и / или возврата назад или нажатия на f5, браузер не должен предлагать отправить данные
Опубликован 14.02.2012 в 01:49 Последнее изменение: 14.02.2012 в 01:57

Выберите способ верификации:

Обновите страницу после прохождения верификации.