Forum Webscript.Ru

Программирование => PHP => Тема начата: Хитрый Хомячок от 25 Февраля 2005, 18:16:36

Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 25 Февраля 2005, 18:16:36
Доброго времени суток многоувожаемые!
Прошу меня извенить за бесстолковый вопрос. Но самостоятельно я что-то не въеду, :( без вашей помщи мне не обойтись.
Вознамерился создать на своем сайте самостоятельно гостевую книгу(исходник не выкладываю - черт голову сломит).
И все то ладненько выходит, но уперся в загвоздку... в перспективе(рано или поздно) сообщения превысят все логические размеры, дабы не утруждать посетителя загруздкой всех старых сообщений вместе, считаю целесообразным выводить по 10-ь сообщений за раз на страницу, на все остальные  создаю ссылки 1 (http://page=1) 2 (http://page=2) и т.д... (http://page=itd)
ок. динамически сформировать ссылки по колличеству сообщений, разобрался. Но вот как мне обработать корректно эти "долбаные" ссылки на последующие , фантазии не зватает. :confused:

Подскажите, правильно ли я рассуждаю? И как обработать просмотр следующих страниц  данных гостевой книги.

Простите за сумбурность моего изложения. РНР лишь осваиваю.
Название: Создание многстоничного вывода
Отправлено: Меняздесьдавнонет от 25 Февраля 2005, 18:59:27
надо, всего лишь, делать по порядку.
тебе надо сначала научиться выводить свою гостевую частями.
затем научиться получать номер части через адресную строку.
ну а потом научиться выводить номерочки со ссылками, в которых будет передаваться номер части.

начнем с первого.
какие проблемы ограничить вывод записей с первой по 10 или с 11 по 20?
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 28 Февраля 2005, 09:10:03
По первому пункту затруднения не возникают.
Файл содержащий всю информацию гостевой книги я передаю в массив и с ним оперирую.
Я размышлял что поступить надо так:
1) Выводятся сообщения с 1 по 10 при условии того что переменная номера части = "" (пустая, т.к. посетитель лишь зашел в гостевую)
2) Если посетитель выбирает другой  номер части, управление передается обратно к этой странице но вывод с 11 по 20 (к примеру). И в зависимости от того, какой номер части выбран, массив соответственно обрабатывается по 10 шт с того места, на который мне указывает гиперссылка

Так вот никак в толк не возьму, как мне гиперссылкой передать номер части.
Название: Создание многстоничного вывода
Отправлено: Меняздесьдавнонет от 28 Февраля 2005, 09:28:41
PHP FAQ: Ссылки на полезные ресурсы. Разное (http://phpfaq.ru/links#misc)
там ссылка на пример разбиения на страницы
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 28 Февраля 2005, 10:15:34
Огромное спасибо! Линк мне помог.

Решил вопрос так:
1) Формируются номера частей в виде гиперссылок.
for ($u=1; $u<$des; $u++)
{echo \'\'.$u.\' \';}

$des -количество строк в текстовом файле, содержащий всю информацию по гостевой книге.
в итоге я получаю http://www.i_book.php?page=1; http://www.i_book.php?page=2; и.т.д.

2) Обрабатываем гиперссылки
if (isset($_GET[\'page\'])) $page=($_GET[\'page\']); else $page=1;

получаю в свое распоряжение переменную $page для оперирования с выводом информации

Вроде работает. Буду отлаживать
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 01 Марта 2005, 12:04:01
Прошу меня извинить что продолжаю тему отклоняясь от оглашенной тематики.
Развивая свою гостевую книгу натолкнулся на то что передаваемые данные сообщения посетителя:

сохраняю в текстовом файле(банально конечно, но на начальном этапе подойдет думаю). Но если в сообщении посетитель использова переход на новую строку(абзац/Еnter) у меня нарушается вся схема хранения данных. Соответственно нарушается дальнейший корректный вывод данных :(
Как мне поступить? Может вернее было бы запретить ввод в данное поле всех нежелательных данных (конец строки, табуляцию)?
if (!preg_match(\'/^(/n)$/\', $content))
{
 echo\'Ошибка!\';
 exit;
}
(приведенный код неправильный!)
самостоятельно сформировать проверку наличия в передоваемой переменной символа конца строки (/n) затрудняюсь :(
Название: Создание многстоничного вывода
Отправлено: SnicK от 01 Марта 2005, 15:45:20
Для удаления таких символов есть функция trim()
$str=trim($str)
Она удаляет пробелы по бокам(что тоже полезно) а также символы "\\n", "\\r", "\\t", "\\v", "\\0" ,"\\$"
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 01 Марта 2005, 16:33:04
http://nmz.dp.ua/0/i_book.php
вот я закинул на хостинг для эксперементов. Невыходит :(
использовал функцию trim, а она заместо удаления символов  "\\n", "\\r", "\\t", "\\v", "\\0" ,"\\$"... лишь добавляет еще один слешь( \\\\n, \\\\t)

А с нежелательными использованными нажитиями Enter в [Коментарий:*]  вносит полную сумятицу, так и не удалось справиться :( :( ;(

примечание: данные оставляемые посетителями, храняться в обыкновенном текстовом файле
Название: Создание многстоничного вывода
Отправлено: Меняздесьдавнонет от 01 Марта 2005, 16:48:51
чуваки, ваш диалог можно номинировать в передачу "аншлаг".
петросян отдыхает. И даже Дубовицкая.

SnicK И КАК ему эта функция прмржет, если юзер сделал абзац не в конце, а посередине?

Цитировать
Хитрый Хомячок:
добавляет еще один слешь( \\\\n, \\\\t)

Ой, правда, што ли? Добавляет? А если подумать? каким-нибудь местом, для этого предназначенным?

Цитировать
Хитрый Хомячок:
Может вернее было бы запретить ввод в данное поле всех нежелательных данных (конец строки, табуляцию

по-твоему, запретить - это единственный способ?
И тебе охота читать тексты без разбиения на абзацы? Себя не жалеешь - так хоть посетителей пожалей, чтобы они глаза не ломали.

Цитировать
Хитрый Хомячок:
 символа конца строки (/n)

с чего ты взял, что символ конца строки обозначается /n?
Точную цитату и адрес.
Название: Создание многстоничного вывода
Отправлено: Mog. от 01 Марта 2005, 16:49:09
Хитрый Хомячок
Запрещать вовсе не обязательно, достаточно заменить на html эквиваленты
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 01 Марта 2005, 17:13:58
2 RomikChef
Очень жаль что ценность вашего ответа не представляет важности для потомков. Как это не печально, но факт. Откуда у вас столько сарказма и циничности? Быть может вы обиженны чем то?...

Учитывая флудовый оттенок вашего сообщения, ограничусь ответом лишь на последний вопрос. "с чего ты взял, что символ конца строки обозначается /n?
Точную цитату и адрес."
С прискорбием ОТМЕЧУ что допустил распространенную ошибку, указав иное направление слеша.
И если ваша фантазия допускает правоту иных людей, то пожалуйста вам источники:
1)Котеров Д. В.Самоучитель PHP 4. — СПб.: БХВ-Петербург, 2001. — 576 с.: ил.стр.31 1-й абзац
2) Люк Велинг, Лора ТОмсон "РАзработка WEB-приложений с помощью РНР и MySQL - стр.70 4-й абзац

Крайне вам признателен за оказанное внимание, оссобенно за ценные коментарии и рекомендации
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 01 Марта 2005, 17:17:31
Mog.
Да я с привеликим удовольствием оставил бы возможность оставлять удобочитаемые коментарии в своей гостевой книге. Низнаю как мне индифицировать передаваемые данные на наличие нажатого Entera. Обратить их в аналог  html перехода на другую строку не составит труда.
:(
Название: Создание многстоничного вывода
Отправлено: Mog. от 01 Марта 2005, 17:35:49
Цитировать
Хитрый Хомячок:
Низнаю как мне индифицировать передаваемые данные на наличие нажатого Entera. Обратить их в аналог html перехода на другую строку не составит труда.

Как идентификация, так и замена производится одной функцией
preg_replace
Название: Создание многстоничного вывода
Отправлено: Меняздесьдавнонет от 01 Марта 2005, 17:59:15
Цитировать
Очень жаль что ценность вашего ответа не представляет важности для потомков. Как это не печально, но факт.

Судя по всему, я беседую с крупным специалистом.
который берется определять ценность ответов.
И которому просто западло ответить на вопросы.
Куда уж нам, бедным посетителям этого форума с таким светилом тягаться.

Пока его с ложечки кормили - он радовался.
а как заставили хоть каплю подумать головой - тут же обидки начались.
Ню-ню.
Раз ты такой большой специалист - скромные наши возможности врядли тебе помогут
Название: Создание многстоничного вывода
Отправлено: Меняздесьдавнонет от 01 Марта 2005, 18:00:44
Если же учесть, что единственной проблемой пациента (помимо черезчур завышенного самомнения) является шаролупие в тяжёлой форме, то отвечать, опять же - бессмысленно.
Название: Создание многстоничного вывода
Отправлено: Меняздесьдавнонет от 01 Марта 2005, 23:56:49
Тема открыта, до первого сообщения не в тему.
Если что-то непонятно в ответе - надо вежливо попросить разъяснений. А с заявлениями для потомков проследуйте в другую палату - здесь это не лечат.

Перед тем, как писать, автору настоятельно рекомендуется задуматься как над своими высказываниями, не вызывающими ничего, кроме смеха, так и над действиями, которые он производит в своей программе.

Внимательность, отсутствие которой и послужило причиной страшных неразрешимых проблем с переводоом строки, так же рекомендуется повысить.
Название: Создание многстоничного вывода
Отправлено: Liion от 05 Марта 2005, 17:28:15
я, как заметил, ромикчеф тут ко всем лезит, не давая никаких нормальных ответов... ты,если не знаешь,не лезь... а то тебе тоже диагноз мона поставить....
Название: Создание многстоничного вывода
Отправлено: NeoNox от 05 Марта 2005, 17:43:12
[moderator]
Liion предупреждение за переход на личности. Последнее.
В следующий раз пиши грамотнее и по теме.
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 09 Марта 2005, 09:36:55
:)
зато RomikChef себе не позволял себе переход на личности и пишет строго по теме.
Название: Создание многстоничного вывода
Отправлено: for_i_0 от 09 Марта 2005, 10:10:20
Цитировать
Хитрый Хомячок:
зато RomikChef себе не позволял себе переход на личности и пишет строго по теме.


Цитировать
RomikChef:
Внимательность, отсутствие которой и послужило причиной страшных неразрешимых проблем с переводоом строки, так же рекомендуется повысить.


Читай [color="orange"]внимательнее[/color], что тебе пишут. Вместо того, что бы разбиратся, кто есть кто.
Название: Создание многстоничного вывода
Отправлено: Хитрый Хомячок от 09 Марта 2005, 14:29:56
Виноват. Признаю. Печально лишь в виду своих амбиций не позводившие рассмотреть свою ошибку сразу :(
Жаль что из-за этого закинул свой первый в жизни "проэкт", так и не разобравшись во всех особенностях. Оставив пробел в этом вопросе.