Как сделать страничку регистрации для почты?

rrgames

Проверенные
Сообщения
154
Реакции
41
Баллы
3,330
Всем доброго времени суток форумчане. Значит ситуация такова. Значит у меня на компе поднят почтовый сервер. Хочу к нему прикрутить какую нить быстренькую форму регистрации почтовых ящиков. Простая форма регистрации где нужно ввести желаемый ник и пароль. И чтоб он сам подставлял домен к нику и всё это бы заводилось в базу. Сервер поднят в связке postfix + Dovecot. База MySql

На чём пишется эта самая страничка регистрации? На PHP? или на чём то другом?
 
rrgames, ну так как вам надо создавать пользователя еще в postfix/dovecot, то вам надо в сторону скриптов взаимодействия с ними и погуглить.
 
Ну так не проблема. Там, насколько я помню, две таблички, domain и mailbox - домены и ящики. С ними и крутить. Паблик регистрация это одно, а если чисто для себя, postfixadmin развернуть, там все есть.
 
Я поясню немного. При необходимости я через Putty захожу в свою базу MySQL


Код:
mysql -u root -p
USE mail;
INSERT INTO users (email, password) VALUES ('test@test.ru', ENCRYPT('password'));


Так вот на чём можно автоматизировать этот процесс? Чтоб вместо INSERT INTO users (email, password) VALUES ('test@xelfaer.ru', ENCRYPT('password')); можно было вписать свои данные (ну и как я понимаю там файл конфига должен быть для коннекта к базе?

Ну так не проблема

Ну дык на чём это организовать? В какой связке? А то я только начал изучать html + css. до пхп ещё не дошёл. А с другими языками я пока вообще не знаком
 
rrgames, ну у php есть встроенная поддержка работы с базами данных. Посмотрите пару статей, после прочтения проблем написать скрипт не составит: и
 
Exile, Как я понимаю

Код:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}

это и есть php?


А так сенк'ю за ссылки)
 
rrgames, да, в фрагменте который вы скинули попытка подключения к базе с указанными данными и вывод ошибки если это не удалось. После подключения можно запросы выполнять. Только полученные данные от клиента надо фильтровать, а то кулхацкеры не дремлют.

Для почты, например:
PHP:
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // выдаем ошибку если указанный адрес email не верный
}
 
rrgames, это стандартные функции php для фильтрации. В данном случае фильтрация email-адреса. Для пароля достаточно сделать проверку на опасные символы только.
 
Ему проще с mysqli

Код:
define ('DB_HOST','localhost');
define ('DB_LOGIN','root');
define ('DB_PASSWORD','');
define ('DB_NAME','users');

$link = mysqli_connect(DB_HOST,DB_LOGIN,DB_PASSWORD,DB_NAME) or die (mysqli_connect_error());
$sql = "INSERT INTO users (email, password) VALUES (?, ?)";";
$stmt = mysqli_stmt_init($link);   
    if(!mysqli_stmt_prepare($stmt, $sql)) return false;
    mysqli_stmt_bind_param($stmt, "ss", $email['email'], $password['password']);
    mysqli_stmt_execute($stmt);   
    mysqli_stmt_close($stmt);

Принимать post через форуму логин/пароль, отфильтровывать и в запрос
 
Exile, гм.............. я канеш всё понимаю) подскажите тогда вообще небольшую логику к действию. Как я понял в php вносятся настройки коннекта к базе + вносятся данные для проверки (свободен ли адрес) и прочее. Далее делается обычная страничка на html в которой можно вписать к примеру лог с пассом.
Когда вводим данные то страничка посылает POST или GET запрос на созданную нами страничку на пхп. Если данные все сходятся (коннект, нет уже такого почтового ящика и прочее) то заводится акк в базу и на страничку html приходит ответ что ваш новый акк зареган?! Или у меня ход мыслей (действий, логики) не верен? Простите меня за ранее за мою назойливость
 
Начни с простого. В форме в action путь к скрипту, на который отправляешь post. Ловишь пост, фильтруешь, валидируешь поля, проверяешь на дубли, затем insert в базу. А когда надоест это писать, плюешь, ставишь postfixadmin и идешь учить дальше)
 
Smalesh, шутка за 300?) постфиксадмин это канеш хорошо. Ну я думаю что если начать с азов так сказать то потом будет легче и интересней. А то не зная происходящих "событий" так не интересно
 
rrgames, ну порядок такой:

1) Создаете html-страницу с формой, указывающей на ваш php-файл
2) Полученные данные из формы фильтруете (мыло указанной выше функцией, пароль просто на кавычки), если не прошло - пишем пользователю ошибку (укажите корректные данные - образец такой-то)
3) После фильтрации данных, подключаетесь к ваше базе данных, если не прошло - пишем пользователю ошибку (нет соединения с базой)
4) После подключения к базе, делаете запрос на вставку в таблицу, который вы уже написали выше, вот только данные в нем - пользовательские, после фильтрации, если запрос не прошел - пишем пользователю ошибку (ошибка вставки данных в базу, обратитесь к администратору)
5) Если запрос в пункте 4 прошел - пишем пользователю что все успешно, даем ему ссылку на страницу входа в почту и напоминаем логин и пароль

Вот и весь алгоритм.
 
Почему шутка? Там только в users куча полей, id/группа, путь, квота, еще что-то. Это все нужно заносить при добавлении.

Аккуратней с filter_var - она фильтрует весьма специфично.
 
Exile, а что вы подразумевает под фильтрацией? Это какой то код (переменная)в пхп?
 
Последнее редактирование:
Аккуратней с filter_var - она фильтрует весьма специфично.
Побоялся скидывать автору былинную регулярку на проверку по стандарту на десяток строк.

rrgames, при всем уважении у вас отсутствует понимание каких-либо языков программирования. Учите основы php с нуля, тут к сожалению иначе никак. Я уже третий раз пишу, что выше скинул вам функцию для фильтрации. Она не на html написана, в заголовке блока кода язык указан.
 
при всем уважении у вас отсутствует понимание каких-либо языков программирования


Я приму это как должное Ибо познаний в сфере php у меня действительно нет. (буду стремится в получении знаний) Спасибо вам парни за направление пути.:thumbsup:
 
  • Мне нравится
Реакции: Hope
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу