$result2 = $dsn->prepare($sql);
$result2->execute([
'login' => $login,
'password' => $password,
'email' => $email,
'img' => $avatar,
'date' => $date
]);
$role = 'user';
$authorid = $dsn->lastInsertId();
$sql = "INSERT INTO authorrole (authorid,roleid) VALUE (:authorid,:roleid)";
$resultrole = $dsn->prepare($sql);
$resultrole->execute([
'authorid' => $authorid,
'roleid' => $role
]);
echo '<img src="' . $avatar . '">';
echo ' ' . '<h3>' . $login . '</h3>' . ' ' . "Вы успешно зарегистрированы! <a href='/index.html'>Главная страница</a>";
} catch (PDOException $e) {
echo "You have an error: " . $e->getMessage() . "<br>";
echo "On line: " . $e->getLine();
}
$activation = md5($authorid) . md5($login);
$subject = "Подтверждение регистрации"; //тема сообщения
$message = "Здравствуйте! Спасибо за регистрацию в модуле комментариев chat\nВаш логин: " . $login . "\n
Перейдите по ссылке, чтобы активировать ваш аккаунт:\nhttp://" . $_SERVER['HTTP_HOST'] . "/chat/admin/users/activation.php?login=" . $login . "&code=" . $activation . "\nС уважением,\n
Администратор модуля"; //содержание сообщение
mail($email, $subject, $message, "Content-type:text/plane; Charset=utf-8\r\n"); //отправляем сообщение
echo "<hr><h3>Вам на E-mail выслано письмо с cсылкой, для подтверждения регистрации.</h3> <br><b>Внимание! Ссылка действительна 1 час.</b>"; //говорим о отправленном письме пользователю
В этом скрипте проверяются данные пользователя и сохраняются в БД. Обработка изображений для аватара сделана только для квадрата, т.к. PHP это язык серверный и обработка изображений явно не его конек. Результаты при обработке прямоугольников мягко говоря разочаровывают, поэтому загрузка и обработка прямоугольных исходников не предусмотрена. Лучше взять готовый или подготовить аватар в графическом редакторе. Код в данном скрипте прокомментирован практически построчно, думается вопросов быть не должно.
С административным разделом закончили, приступаем к комментариям.
22. Комментарии
Для работы с комментариями используем папку «say», созданную ранее в разделе 3. На данном этапе она пуста и кроме папки «smiles» в которой хранятся заранее подготовленные смайлы в ней ничего нет.
23. Контроллер 3
Для вывода комментариев создаем контроллер 3 «say_controller.php».
Листинг 38. say_controller.php Путь: news/chat/ say_controller.php
<?php
error_reporting(E_ALL);
include_once $_SERVER['DOCUMENT_ROOT'] .'/chat/admin/clean.php';
include $_SERVER['DOCUMENT_ROOT'].'/chat/function/print_comment.php';
include $_SERVER['DOCUMENT_ROOT'].'/chat/function/print_smile_set.php';
$page_id = $_SERVER['PHP_SELF']; //индексируем страницу
/* Если пользователь авторизован вставляем ссылку Добавить комментарий */
if (isset($_SESSION['login'])) {
$userid = $_SESSION['userid'];
echo '<div class="addsay" id=""><a href="?addsay" class="aaddsays">Добавить комментарий</a></div>';
}
else {
$userid = '';
}