Joomla портал
seo seo Subscribe
seo
0
seo

Примеры иллюстрирует листинг 15.1.

// Выводим первые 10 записей

SELECT *

FROM

LIMIT 0,10

// Выводим 10 записей, начиная с десятой записи

SELECT *

FROM

LIMIT 10,10

// Выводим 10 записей, начиная с двадцатой записи

SELECT *

FROM

LIMIT 20,10

Как видите, все просто. Параметр offset остается неизменным — это число

записей, которое мы будем выводить на странице (этот параметр можно даже

Глава 15. Дополнительные функции CMS 189

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

его изменить).

Теперь напишем сценарий, организующий постраничный вывод из таблицы.

Пусть наш сценарий называется show.php, а переменная, задающая нужную

страницу, — $раде. Тогда ссылка на следующую страницу будет выглядеть

так:

fl^ee

Сценарий будет выводить объявления из таблицы ob. Структура таблицы

очень проста: поле dt — дата публикации объявления, а поле t — текст

самого объявления. Сценарий будет выводить по пять объявлений из таблицы,

а также ссылки Назад и Далее. Первая ссылка будет выведена, если номер

страницы больше нуля, а вторая — если еще есть записи для вывода.

Код сценария, а также подробные комментарии приведены в листинге 15.2.

// Подключаемся к серверу, выбираем базу данных и устанавливаем кодировку

mysql_connect(«localhost»,»root»,»password»);

mysql_select_db(«database»);

mysql_query(‘SET NAMES cpl251;’);

// Число объявлений на странице

$N = 5;

// Использовать функцию mysql_num_rows() нельзя, потому что

// для того чтобы узнать общее число записей, нужно выполнить

// запрос select * from ob, т. е. получить все записи, а это

// нежелательно, поэтому вызываем функцию count

$rl=mysql_query(«select count(*) as rec from ob»);

$f ~ mysql_fetch_row($rl) ;

$rec = $f[0]; // Всего записей в таблице

// Если страница не указана, выводим первую

if (!isset($page)) $page=0;

190

Часть IV. Разработка собственной Cftfs

// Записи, которые нужно вывести

$records = $page * $N;

// Запрос

$q=»select * from ob limit «.$records.», $N»;

echo «Всего записей $rec
«;

$r=^riysql_query($q); // Выполняем запрос

$n = mysql_nmn_rows($r); // Число записей

// Если страница не первая, выводим ссылку Назад

if ($page > 0) {

$р = $page — 1;

echo «Ha3afl »;

}

$page++; // Увеличиваем страницу

// Выводим ссылку на следующие пять записей (на след. Страницу),

// если она есть, т. е. число записей, которые нужно вывести, и

// смещение не превышает общего числа записей

if ($records+$N

echo «Далееа>«;

// Выводим объявления

for ($i=0; $i

{

$f=*nysql_fetch__array($r);

// Выводим дату (поле dt)

echo «

$f [dt]«;

Гпава 15. Дополнительные функции CMS 191

// Выводим текст объявления (поле t)

echo «*

«;

?>

Готовый сценарий представлен на рис. 15.2.

Рис. 15.2. Постраничный вывод таблицы

15.3. Функция вывода

содержимого HTML-файла

Иногда бывает нужно вывести содержимое какого-нибудь HTML-файла.

Реализовать функцию вывода HTML-файла довольно просто. Прежде чем

приступить к написанию кода, поговорим о формировании ссылок для вызова

Данной функции. Вот пример таких ссылок:

index.php?p=file4&f=about

index.php?p=file&fHext/about

192

Часть IV. Разработка собственной CMS

В первом случае будет открыт файл about.html, который находится в одном

каталоге с файлом index.php, а во втором случае будет открыт файл

about.html из каталога text. Обратите внимание: расширение файла указывать

не нужно. Это сделано из соображений безопасности, чтобы злоумышленник

не смог с помощью данной функции открыть произвольный файл в системе.

Как злоумышленник может открыть любой файл? Сейчас поясню. Ваш

сценарий index.php находится на жестком диске Web-сервера. Пусть данный

файл находится в каталоге /var/www/clientOl/html. При неправильной

настройке Web-сервера (если у администратора, извините, кривые руки) наш

сценарий может получить доступ к файловой системе самого сервера.

Следовательно, доступ к файловой системе может получить и злоумышленник.

Стоит ему указать имя файла ../../../../etc/passwd, и он получит доступ к базе

данных учетных записей Web-сервера.

Чтобы защитить сервер, мы будем к имени файла добавлять \html\ В случае с

HTML-файлами это даже удобно, поскольку нам не нужно указывать

расширение файла, а только его имя.

Страницы:
1
23456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 5253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
seo

$f[t]

5th Фев 2011
Теги:
seo

Написать ответ

seo
 
Все права защищены © 2023 Joomla портал
 
 
seo