Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Небольшое теоретическое отступление по поводу CSS .

Вообще, существует три способа использования CSS.

1. Включение CSS непосредственно в HTML-код. Например, так:

<p style="text-align:center;color:#d00">Красный цвет по центру

Может использоваться для одноразовых включений в HTML (наряду с <font>) и в случаях, когда нецелесообразно менять существующие CSS-файлы или подключать новые.

2. Включение CSS в блоке <head> страницы. Вот так:

<html><head>

...

<style>

red {color:#f00}

</style>

</head><body>

...

<p class=red>Красный текст

...

</body></html>

Такой способ не рекомендуется применять, однако это предпочтительно в одном случае – если дизайн сайта, настраивается под каждого пользователя индивидуально. Кодеру меньше работы – переменные дизайна банально вставляются на нужные места и нет смысла писать несколько CSS-ок.

3. Подключение внешних CSS-файлов. Реализуется так:

<link rel=stylesheet href=css/mycss.css type=text/css>

И в нужную папку кладётся нужный файл.

Как видно, в этом проекте я использую третий способ.

Inc /middle.inc

1. основная таблица во весь экран.

<table cellspacing=5 cellpadding=5 border=0>

2. она состоит из одной строчки.

<tr><td

3. в первой ячейке – содержимое menu.inc.

<? include($my->path_inc.'/menu.inc');?>

4-5. во второй – результат гейта (вы зашли успешно либо вы не зашли вообще). Потом начинается основной текст.

</td><td

<?=$my->gate_result?>

Inc /bottom.inc

1-2. закрываем основную таблицу

</td></tr>

</table>

3. копирайт

<p id="copy">&copy; 2006 <a href="<?=$my->copy_url?>"><?=$my->copy_name?></a>.

4-5. конец HTML

</body>

</html>

Теперь объясняю что за переменные типа $path_inc, $copy_name, $site_name, $generator, $version и др. Встречались в предыдущих инклудах. Эти глобальные переменные прописаны в init.class. Вот он:

<?

Называем класс и открываем скобку

class class_init

{

Пути к проекту на диске – при переносе должны быть изменены

var $path_data='d:\Work\FileExchanger alpha\data';

var $path_inc='d:\Work\FileExchanger alpha\inc';

var $path_files='d:\Work\FileExchanger alpha\files';

var $path_http='http://localhost/';

копирайт

var $copy_name='stbear-l2';

var $copy_url='http://copi.ru/68614';

мой любимый редактор

var $generator='AkelPad 2.1.6';

имя сайта – отображается в top.inc

var $site_name='File Exchanger';

адреса e-mail

var $email_support='[email protected]';

var $email_robot='robot@localhost';

версия

var $version='alpha4+';

время кэширования страниц (функция send_headers())

var $cache_time=180;

максимальный номер ошибки, которая отправляется админу.

var $debug_level=50;

указатель на соединение с базой

var $sql_link;

реквизиты доступа к БД

var $sql_host='localhost';

var $sql_login='root';

var $sql_pass='';

var $sql_db='db_files';

запрос формируется в этой переменной

var $sql_task;

ошибки SQL (для дебага)

var $sql_error;

var $sql_errno;

результат выполнения запроса

var $sql_res;

 

Стартует соединение с БД, если этого не было сделано ранее

function sql_start()

{

Устанавливаем соединение с SQL-сервером. Использовать p connect предпочтительнее

if(!$this->sql_link=@mysql_pconnect($this->sql_host,$this->sql_login,$this->sql_pass)) return(11);

Выбираем нашу БД.

if(!@mysql_select_db($this->sql_db)) return(12);

return(0);

}

Основная функция для взаимодействия с БД

function sql_run()

{

Если нет соединения с БД, вызывается sql_start()

if(!$this->sql_link) if($err=$this->sql_start()) return($err);

собственно выполняется запрос

$this->sql_res=@mysql_query($this->sql_task,$this->sql_link);

Проверяем, были ли ошибки

if($this->sql_errno=mysql_errno($this->sql_link))

{

Если была ошибка, запоминаем её описание и возвращаем ошибку 13 – «ошибка выполнения запроса»

$this->sql_error=@mysql_error($this->sql_link);

return(13);

}

return(0);

}

}

конец

?>

Main.class нет смысла описывать из-за его размера.

Распишу оставшийся инклуд.

Inc /on _load.inc

<?

Запускаем счётчик

if($err=$my->counter()) $my->get_err($err);

если есть переменная, полученная от формы входа

if(@$_POST['gate_submit'])

{

Проверяем логин и пароль

if($err=$my->gate_open()) $my->gate_result=$my->get_err($err);

else $my->gate_result='<p class=ok>Вы успешно вошли в систему.';

}

Если пользователь решил выйти, удаляем сессию

if(isset($_GET['out'])) $my->gate_close();

восстановление сессии по кукам

elseif($err=$my->recognize_cookie()) $my->get_err($err);

?>

Для примера приведу функцию добавления файла.

Ппеременные с говорящими именами – объявляются в начале класса

var $in_file_ext;

var $in_file_cat;

var $in_file_desc;

var $in_file_name;

var $in_file_user;

var $in_file_id;

var $in_file_enable;

var $in_file_dt;

var $in_file_size;

объявление функции

function in_file_add()

{

Если пользователь не зарегистрирован, то что он тут делает?

if(!$_SESSION['status']) return(6);

проверка файла, теперь переменные «наполнились»

if($err=$this->in_file_check()) return($err);

файл и данные в порядке, составляем запрос

$this->sql_task='insert into tbl_files(f_ext,f_name,f_desc,f_dt,f_size,f_user) values(\''.$this->in_file_ext.'\',\''.$this->in_file_name.'\',\''.$this->in_file_desc.'\',\''.$this->in_file_dt.'\',\''.$this->in_file_size.'\',\''.$this->in_file_user.'\')';а теперь выполняем запрос

if($err=$this->sql_run()) return($err);

данные добавились, получаем ID

$this->sql_task='select last_insert_id()';

if($err=$this->sql_run()) return($err);

if(!list($this->in_file_id)=mysql_fetch_row($this->sql_res)) return(14);

перемещаем файл

if(!move_uploaded_file($_FILES[$this->in_file_user]['tmp_name'],$this->path_files.'/'.$this->in_file_id.'.'.$this->in_file_ext)) {

если он не перемещён, удаляем запись из базы...

$this->sql_task='delete from tbl_files where f_id='.$this->in_file_id;

if($err=$this->sql_run()) return($err);

...и возвращаем ошибку

return(23);

}

Файл удачно перемещён, делаем связку с рубрикой

$this->sql_task='insert into tbl_cats_files(cf_cat,cf_file) values(\''.$this->in_file_cat.'\',\''.$this->in_file_id.'\')';

if($err=$this->sql_run()) return($err);

если не стоит галка «Скрыть файл», разрешаем:

if(!@$_POST['file_enable'])

{

if($err=$this->in_file_enable()) return($err);

if($err=$this->in_cat_file_enable()) return($err);

}

$this->result='<p class=ok>Файл успешно добавлен.Теперь он всегда доступен по ссылке:<br> <a href=http://'.$_SERVER['HTTP_HOST'].'/get.php?id='.$this->in_file_id.'>http://'.$_SERVER['HTTP_HOST'].'/get.php?id='.$this->in_file_id.'</a>.';

Всё в порядке, возвращаем ноль.

return(0);

}

Фрагмент public_html/file/add.php (форма)

Enctype добавляется, тк мы используем POST-аплоад файлов

<form enctype="multipart/form-data" action="<?=$_SERVER['REQUEST_URI']?>" method=post>

Информация для пользователей

Параметры добавляемого файла:<br><br>author: <?=$_SESSION['login']?>, date: <?=$my->get_dt()."\n"?>, рубрика:

Тут выводится список рубрик

<? echo $my->generate_option_list();?>

<br>Название файла: <input type=text name=file_name value="<?=@$_POST['file_name']?>" size=80 maxlength=50>

<br>Описание:<br><textarea name=file_desc cols=80 rows=5><?=@$_POST['file_desc']?></textarea>

Имя файловой переменной – логин пользователя (так проще)

<br><br>Сам файл: <input type=file name="<?=$_SESSION['login']?>">

<br>Скрыть файл? <input type=checkbox name=file_enable value="тра-ля-ля!!!"<? if(@$_POST['file_enable']) echo 'checked';?>><font size=1>при включённой опции файл не будет отображаться в рубрике, но будет доступен по по сгенерированному URL-адресу</font>

<br><input type=submit name=submit value="Добавить!">

</form>

Принцип работы остальных функциональных частей аналогичен приведённым примерам. Кроме того, текст скриптов понятен и без комментариев.

Инструкция пользователя

 

Для запуска программы необходимо запустить любой браузер и в строке URL ввести localhost или 127.0.0.1. На вашем экране появится следующая страница (рис.1):

 

Рис.1 Главная страница файлообменника.

 

Теперь вам следует зарегистрироваться.

Если у Вас еще нет своего имени (логина) и пароля, щелкните мышкой на пункте меню «Регистрация». На открывшейся странице (рис.2) заполните поля «логин», «пароль», повторите Ваш пароль в поле «Исчо разок». Если данные введены верно, нажмите кнопку «Регистрировать».

По умолчанию длина логина пользователя не может быть меньше 2 символов, а длина пароля – меньше 4.

Если Вы зарегистрировались успешно, сообщение об этом появится на страничке (см.рис.3).

Теперь Вы сможете войти в систему как зарегистрированный пользователь. Для этого введите логин и пароль в окошке справа вверху и нажмите кнопку «Войти».

Если логин и пароль введены правильно, появится сообщение «Вы успешно вошли в систему» и следующая страничка (см.рис.4).

 

Рис.2 Страница регистрации.

 

Введите логин и пароль в окошке справа вверху и нажмите кнопку «Войти».

 

Рис.3 Страница с сообщением об успешной регистрации.


Рис.4. Страничка зарегистрированного пользователя.

 

Слева странички расположено меню. Для простого пользователя оно состоит из трех разделов:

- Рубрики;

- Пользователи;

- Файлы.

Для пользователя со статусом «Администратор» добавлены разделы

- Рубрики \редактирование\;

- Администрирование

Рассмотрим разделы меню подробнее

Рубрики.

Здесь перечислены темы, по которым группируются предлагаемые файлы. Щелчок левой кнопкой мыши по названию рубрики открывает перечень файлов выбранной тематики.

В примере на рис.5 на странице одновременно отображается перечень из 5 файлов. Если в рубрике больше 5 файлов – вверху и внизу странице появляется список листов. Выбрав следующую страницу Вы можете прочитать продолжение списка файлов.

Для каждого файла приводится краткая информация, автор, размер, дата последнего обновления, рейтинг популярности (количество скачиваний).

Нажав на ссылку Download, относящуюся к выбранному Вами файлу, вы можете скачать его для дальнейшего использования.

Рис.5. Перечень файлов рубрики TEST_CAT 1.

 

Пользователи

 

В этом разделе только один пункт – «Настройка». Выбрав этот пункт вы можете изменить свой логин и пароль, количество файлов, одновременно отображаемых на странице, а также данные для связи с вами, такие как URL и ICQ (см.рис.6).

 

Рис.6. Страница настройки характеристик работы пользователя.

 

Файлы

Этот раздел содержит пункты, позволяющие изменять файлы предлагаемых рубрик:

- Добавить

В этом пункте вы можете выбрать файл для передачи в файлообменник, ввести его название, краткое описание. Файл можно поместить в одну из существующих рубрик (рис.7).

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

 

Рис.7 Страница добавления файла.

 

- Изменить

Выбрав пункт Изменить, Вы открываете страничку с перечнем файлов по рубрикам(рис.8). У вас есть возможность выбрать рубрику и файл для внесения изменений.

Если Вы простой пользователь, Вы можете редактировать только свои файлы. Если Вы администратор или модератор – Вам доступны файлы всех пользователей.

Для внесения изменений в файл открывается страница как на рис.9. Вы можете изменить название файла, его описание, поменять рубрику, открыть/скрыть файл, загрузить иную версию файла.


Рис.8. Страница со списком файлов для изменения.

 

Рис.9 Страница изменения файла.

- Удалить

В перечне файлов (рис.10) Вы можете выбрать файл для удаления.

Если Вы простой пользователь, Вы можете удалять только свои файлы. Если Вы администратор или модератор – Вам доступны файлы всех пользователей.


Рис.10. Страничка удаления файла.

Рубрики

Этот раздел доступен только администратору и содержит пункты, позволяющие изменять рубрики:

- Добавить

Здесь вы можете создать новую рубрику. Для этого нужно ввести её название – оно будет отображаться в списке рубрик – и описание – оно появляется при просмотре содержимого рубрики (рис. 11).

 

Рис.11 Страница добавления рубрики.

- Изменить

Для изменения рубрики вы выбираете её из списка (рис.12).

Рис.12 Страница со списком рубрик для изменения.

 

Открывается страница (рис.13), в которой вы сможете изменить название и описание рубрики, а также запретить или разрешить её.

 

Рис.13 Страница изменения рубрики.

- Удалить

Для удаления рубрики её нужно выбрать из списка (рис.14).


Рис.14 Страница удаления рубрик.

 

Админ

Раздел «Администрирование» создан для контроля эффективности работы файлообменника.

- Счетчик

Эта страничка позволяет просмотреть результаты работы счётчика. Состоит из 2х частей: в первой части (рис. 15) подсчитывается число обращений к отдельным страницам сайта. Во второй части (рис. 16) записываются IP-адреса зашедших на сайт.

 

Рис.15 Просмотр числа зашедших на различные URL сайта.


Рис.16 Страница для просмотра данных о зашедших на сайт посетителях.

 

- юзеры (пользователи)

На этой страничке (рис.17) можно просмотреть список пользователей и совершить над ними простые действия: повысить до модератора (синяя стрелка вверх), снять статус модератора (жёлтая стрелка вниз) или удалить (красный крестик). Также можно просмотреть дополнительную информацию о пользователе, щёлкнув на его логине (рис.18). Щёлкнув по IP-адресу (если это не 127.0.0.1), вы увидите данные о провайдере.

 

Рис.17 Страница для просмотра списка пользователей.

 

Рис.18 Страница для просмотра информации о конкретном пользователе.

 

- ошибки

На этой страничке (рис. 19) вы можете просмотреть лог ошибок, которые не удалось оправить тех.поддержке посредством SMTP-сервера, чтобы вы могли принять меры для их устранения.

 

Рис.19 Страница для просмотра лог-файла ошибок.


Заключение

 

В ходе курсовой работы был создан файлообменник, работающий под управлением PHP и MySQL.

В следующей версии файлообменника мне хотелось бы добавить:

1. Более совершенный счётчик, осуществляющий автоопределение пользователей и ботов, зашедших на сайт с выводом удобной статистики.

2. Работа с e-mail (регистрация, подтверждение, рассылка, аттачи)

3. Сокрытие переменных в адресной строке (как на 440hz.ru)

Задание на курсовой работе было выполнено полностью и в соответствии с техническим заданием.


Список литературы

 

1. Люк Веллинг, Лора Томсон «MySQL. Учебное пособие.» Москва, Вильямс, 2005

2. http://php.net – официальный сайт PHP

3. http://phpclub.ru – сайт русских PHP-программистов.

4. http://php.ru – новый русскоязычный сайт о PHP

5. http://440hz.ru – персональный сайт Андрея Лугового, одного из создателей php.ru

6. http://kurepin.ru – персональный сайт Руслана Курепина

7. http://akelpad.net.ru – сайт редактора AkelPad

8. http://editplus.com – сайт редактора EditPlus

9. http://httpd.apache.org – официальная страница веб-сервера Apache

10. http://phpwars.net – PHP Wars, сайт о практических применениях PHP

11. http://pterodactyl.l2p.net – сайт Птеродактиля о PHP

12. http://webdeveloper.net.ru – ещё один форум для веб-разработчиков


[1] Проект HTTP-сервера Apache – это попытка разработки и установки HTTP-сервера с открытыми исходными кодами для современных операционных систем, включая UNIX и Windows NT. Цель этого проекта – обеспечить безопасный, эффективный и масштабируемый сервер, который обеспечит HTTP-сервисы в соответствии с текущими стандартами HTTP.

С апреля 1996 Apache стал наиболее популярным сервером интернета. В ноябре 2005 года обзор веб-серверов Netcraft обнаружил, что 70% сайтов интернета используют Apache, делая его таким образом более широко используемым, чем все другие веб-сервера вместе взятые.

[2] EditPlus – это 32-разрядный текстовый редактор в среде Интернет, редактор HTML-кода и редактор программистов для Windows. В то время, как он служит отличной заменой Блокноту, он также предлагает ряд мощных средств для авторов веб-страниц и программистов.

· Подсветка синтаксиса для HTML, CSS, PHP, ASP, Perl, C/C++/C#, Java, JavaScript и VBScript. Кроме того, он может быть расширен для других языков программирования, основываясь на файлах со стандартным синтаксисом.

· Безупречный веб-браузер для предварительного просмотра HTML-страниц и команд FTP для загрузки локальных данных на FTP-сервер.

· Другие средства, включая панель HTML-инструментов, инструменты пользователя, номера строк, линейка, подсветка URL, автозавершение вырезок текста, выбор колонок, мощный механизм поиска/замены, возможность многократной отмены/повтора, проверка орфографии, переназначаемые «горячие клавиши» и др.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...