Разработка фотохостинга - Программирование, компьютеры и кибернетика курсовая работа
Создание фотохостинга с минимальным дизайном, возможностью комментирования и голосования. Тестирование браузерами правильного отображения макета сайта. Руководство пользователя. Вёрстка с помощью таблиц. Реализация разделения прав для управления сайтом.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Кафедра «Информатика и программное обеспечение»
по дисциплине «Разработка и администрирование Web-узлов»
1. Для загрузки большего количества изображения нужно платить деньги.
2. Загрузка изображений в высоком разрешение требует денег.
FirePic (http://firepic.org/) - бесплатный фотохостинг без регистрации для публикации фотографий, картинок и других изображений на форумах, в чатах, блогах и других сайтах сети Интернет. При помощи FirePic вы можете поделиться интересной картинкой или вашей новой фотографией с друзьями и собеседниками.
1. Малый объем загружаемого изображения.
Vfl (http://vfl.ru/) - это бесплатный фотохостинг без регистрации.
2. Ограничение на объем загружаемых изображений.
3. Удаление изображений в случае не активности
· i ndex. php - начальная страница сайта
· add_ album . php - файл для создания нового альбома
· connect _ DB . php - файл подключения к базе данных
· registration . php - файл для регистрации новых пользователей
· code . php - файл с основными функциями сайта
· album . php - файл для отображения альбома
· pwd _ change . php - файл для смены пароля у пользователей
· image . php - файл для отображения изображения
· upload . php - файл для загрузки изображения на сервер
· rating . php - файл для вычисления рейтинга изображения
· userprofile . php - файл для отображения профиля пользователя
· style . css - стилевой файл оформления
В начале разработки сайта были созданы основные таблицы базы данных MySQL:
CREATE TABLE users ( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
status VARCHAR(10)) DEFAULT `user';
CREATE TABLE albums ( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
CREATE TABLE photo ( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
CREATE TABLE comments AUTO_INCREMENT PRIMARY KEY,
Первой возможность сайта была реализован регистрация пользователей. Форма регистрации состоит из 4 полей: Username, Password, Confirm, Email.
">
Username:
Password:
Confirm:
Email:
Обработка формы осуществляется в файле registration.php. Если запросы от формы не пустые, то идет обработка введённой информации с помощью функции clearData для безопасности:
Если все поля соответсвуют требованиям они вносятся в таблицу users:
$sql = "INSERT INTO users (login, pwd, email, login_hash) VALUES ('$l', '$p', '$e', '$lh')";mysql_query($sql) or die(mysql_error());
Если регистрация прошла успешно, то данные о пользователе сохраняются в сессии, и происходит перенаправление на главную страницу сайта уже под только что зарегистрированным пользователем:
$_SESSION["id"] = $user_result["id"];
$_SESSION["status"] = $user_result["status"];
Окно логина состоит из двух полей Username и Password так же имеется checkbox Remember me (сохранение пользователя в “куках”). Если введены данные происходит запрос на существование такого пользователя и проверка правильности введённого пароля:
$query = mysql_query("SELECT id, pwd, status FROM users WHERE login = '$login'");
$user_result = mysql_fetch_array($query, MYSQL_ASSOC);
if ($user_result["pwd"] != $_POST["pwd"]){$error_msg = "Invalid password";}
При совпадение пароля происходит входит пользователя, данные сохраняются в сессии, а если был выбран пункт Remember me то и в “куках”:
$_SESSION["id"] = $user_result["id"];
$_SESSION["status"] = $user_result["status"];
if (isset($_REQUEST["rememberUser"])){
setcookie("login", $login_hash.$key , time()+3600);}
При загрузке изображения на сервер происходит проверка на формат данных:
switch ($type) {case 'image/bmp':$flag = true;break;
case 'image/jpeg':$flag = true;break;
case 'image/gif':$flag = true; break;
case 'image/png': $flag = true; break;
Если данная функция возвращает True то происходит загрузка изображения в папку upload на сервере:
$uploadfile = $uploaddir.basename($_FILES['img']['name']);
$pathFile = "./upload/".basename($_FILES['img']['name']);
if (cheackeType($_FILES["img"]["type"]) and !empty($_FILES["img"]["name"]))
{if (copy($_FILES["img"]["tmp_name"], $uploadfile))
Если пользователь вошел на сайт под своей учетной записью, то у него появляется возможность добавления альбомов. Для этого надо заполнить поля формы:
td>Name
Description
За обработку данной формы служит эта часть когда:
if (checkAlbum($_POST["nameAlbum"])){
$album_query = "INSERT INTO albums (id_user, name, discrip)
mysql_query($album_query) or die(mysql_error());
Для возможности перелистывания изображений в альбоме создается переменная количества изображений в данном альбоме:
$count_result = mysql_query("SELECT COUNT(*) FROM photo
WHERE id_album = '$img[id_album]'");
$count_photo = mysql_fetch_array($count_result);
И переменная, отвечающая за позицию открытого изображения в альбоме:
$pos_result = mysql_query("SELECT COUNT(*) FROM photo
WHERE id_album = '$img[id_album]' andid < '$id_img'");
$pos_arr = mysql_fetch_array($pos_result);
Высчитывается id следующего и предыдущего изображения:
$nxt_pht_result = mysql_query("SELECT id FROM photo
WHERE id_album = '$img[id_album]' LIMIT $next, 1");
$next_pht_query = mysql_fetch_assoc($nxt_pht_result);
$next_photo = $next_pht_query["id"];
$prv_pht_result = mysql_query("SELECT id FROM photo
WHERE id_album = '$img[id_album]' LIMIT $prev, 1");
$prv_pht_query = mysql_fetch_assoc($prv_pht_result);
$previos_photo = $prv_pht_query["id"];
Под изображениями в альбоме находится форма для отправки комментария. После ее отправки текст сообщения и id пользователя заносится в таблицу comments:
$comment = clearData($_POST["comment"]);
$add_comment = mysql_query("INSERT INTO comments (comment, id_user, id_img)
VALUES ('$comment', '$_SESSION[id]', '$id_img')");
header("Location: image.php?id=$id_img");}
Для вывода комментариев сначала выполняется запрос к таблице comments где происходит выбор всех комментариев к этому изображению в порядке убывания id:
$comments_result = mysql_query("SELECT id, id_user, id_img, comment
FROM comments WHERE id_img = '$_GET[id]' ORDER BY id DESC");
Для вывода комментариев используется цикл while:
while ($commentList = mysql_fetch_assoc($comments_result)) {
$login_comment_result = mysql_query("SELECT login FROM usersWHERE id = '$commentList[id_user]'");$login_comment = mysql_fetch_assoc($login_comment_result);?>