Оценить:
 Рейтинг: 0

PHP. Разработка модуля комментариев для сайта

Год написания книги
2021
Теги
<< 1 ... 38 39 40 41 42 43 44 45 46 ... 78 >>
На страницу:
42 из 78
Настройки чтения
Размер шрифта
Высота строк
Поля

// dest – результирующее изображение

// w – ширина изображения

// ratio – коэффициент пропорциональности

$w = 90; // квадрат 90x90

$h = 90;

// создаём исходное изображение на основе исходного файла и определяем его размеры

$w_src = imagesx($im); //вычисляем ширину

$h_src = imagesy($im); //вычисляем высоту изображения

if ($w_src !== $h_src) {

exit ('<h4>Стороны изображения для загрузки должны быть равны. Квадрат. Например 256*256.<br>Рекомендую использовать готовые аватары со специализированных сайтов.<br>

Или подготовьте картинку в графическом редакторе</h4><br><i>p.s. грузим аватары, а не картины</i>');

}

// создаём пустую квадратную картинку именно truecolor!, иначе будет 8-битный результат

$dest = imagecreatetruecolor($w,$w);

$white = imagecolorallocate($dest, 255, 255, 255);

imagefill($dest, 0, 0, $white);

imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $h_src);

$date=time(); //вычисляем время в настоящий момент.

imagejpeg($dest, $path.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.

$avatar = $path.$date.'.jpg';//заносим в переменную путь до аватара.

$delfull = $path.$filename;

unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было – получить миниатюру.

}

else

{

//в случае несоответствия формата, выдаем соответствующее сообщение

exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>"); //останавливаем выполнение сценариев

}

//конец процесса загрузки и присвоения переменной $avatar адреса загруженной авы

}

Скрипт создает и присваивает пользователю аватар из выбранной им картинки и загружает его под уникальным именем в папку avatars. Листинг подробнейший, мне кажется, здесь пояснения не нужны.

18. Работа с обычным пользователем

18.1 Скрипт работы с пользователем

Скрипт аналогичен коду использумому для работы с администратором в индексном файле папки «users» за исключением того, что пользователь видит и может редактировать только свои данные. Кроме того он не может поменять свой логин. За это отвечает свойство Readonly в поле ввода логина.

За обработку данных отвечает файл «edituser.php».

Листинг 32. edituser.php Путь: news/chat/admin/users/ edituser.php

<?php

error_reporting(E_ALL);

require_once $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/access.php';

/*.................Редактирование пользователя....................*/

if (isset($_POST['action']) and $_POST['action'] == 'Редактировать') {

include $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';

try {

$sql = 'SELECT id, login, email, img FROM users WHERE id = :id';

$s = $dsn->prepare($sql);

$s->bindValue(':id', $_POST['id']);

$s->execute();

} catch (pdoException $e) {

$error = 'Ошибка при получении сведений об авторе.';

include $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/users/error.html.php';
<< 1 ... 38 39 40 41 42 43 44 45 46 ... 78 >>
На страницу:
42 из 78