Forum Webscript.Ru
Программирование => PHP => Тема начата: Хитрый Хомячок от 25 Февраля 2005, 18:16:36
-
Доброго времени суток многоувожаемые!
Прошу меня извенить за бесстолковый вопрос. Но самостоятельно я что-то не въеду, :( без вашей помщи мне не обойтись.
Вознамерился создать на своем сайте самостоятельно гостевую книгу(исходник не выкладываю - черт голову сломит).
И все то ладненько выходит, но уперся в загвоздку... в перспективе(рано или поздно) сообщения превысят все логические размеры, дабы не утруждать посетителя загруздкой всех старых сообщений вместе, считаю целесообразным выводить по 10-ь сообщений за раз на страницу, на все остальные создаю ссылки 1 (http://page=1) 2 (http://page=2) и т.д... (http://page=itd)
ок. динамически сформировать ссылки по колличеству сообщений, разобрался. Но вот как мне обработать корректно эти "долбаные" ссылки на последующие , фантазии не зватает. :confused:
Подскажите, правильно ли я рассуждаю? И как обработать просмотр следующих страниц данных гостевой книги.
Простите за сумбурность моего изложения. РНР лишь осваиваю.
-
надо, всего лишь, делать по порядку.
тебе надо сначала научиться выводить свою гостевую частями.
затем научиться получать номер части через адресную строку.
ну а потом научиться выводить номерочки со ссылками, в которых будет передаваться номер части.
начнем с первого.
какие проблемы ограничить вывод записей с первой по 10 или с 11 по 20?
-
По первому пункту затруднения не возникают.
Файл содержащий всю информацию гостевой книги я передаю в массив и с ним оперирую.
Я размышлял что поступить надо так:
1) Выводятся сообщения с 1 по 10 при условии того что переменная номера части = "" (пустая, т.к. посетитель лишь зашел в гостевую)
2) Если посетитель выбирает другой номер части, управление передается обратно к этой странице но вывод с 11 по 20 (к примеру). И в зависимости от того, какой номер части выбран, массив соответственно обрабатывается по 10 шт с того места, на который мне указывает гиперссылка
Так вот никак в толк не возьму, как мне гиперссылкой передать номер части.
-
PHP FAQ: Ссылки на полезные ресурсы. Разное (http://phpfaq.ru/links#misc)
там ссылка на пример разбиения на страницы
-
Огромное спасибо! Линк мне помог.
Решил вопрос так:
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 для оперирования с выводом информации
Вроде работает. Буду отлаживать
-
Прошу меня извинить что продолжаю тему отклоняясь от оглашенной тематики.
Развивая свою гостевую книгу натолкнулся на то что передаваемые данные сообщения посетителя:
сохраняю в текстовом файле(банально конечно, но на начальном этапе подойдет думаю). Но если в сообщении посетитель использова переход на новую строку(абзац/Еnter) у меня нарушается вся схема хранения данных. Соответственно нарушается дальнейший корректный вывод данных :(
Как мне поступить? Может вернее было бы запретить ввод в данное поле всех нежелательных данных (конец строки, табуляцию)?
if (!preg_match(\'/^(/n)$/\', $content))
{
echo\'Ошибка!\';
exit;
}
(приведенный код неправильный!)
самостоятельно сформировать проверку наличия в передоваемой переменной символа конца строки (/n) затрудняюсь :(
-
Для удаления таких символов есть функция trim()
$str=trim($str)
Она удаляет пробелы по бокам(что тоже полезно) а также символы "\\n", "\\r", "\\t", "\\v", "\\0" ,"\\$"
-
http://nmz.dp.ua/0/i_book.php
вот я закинул на хостинг для эксперементов. Невыходит :(
использовал функцию trim, а она заместо удаления символов "\\n", "\\r", "\\t", "\\v", "\\0" ,"\\$"... лишь добавляет еще один слешь( \\\\n, \\\\t)
А с нежелательными использованными нажитиями Enter в [Коментарий:*] вносит полную сумятицу, так и не удалось справиться :( :( ;(
примечание: данные оставляемые посетителями, храняться в обыкновенном текстовом файле
-
чуваки, ваш диалог можно номинировать в передачу "аншлаг".
петросян отдыхает. И даже Дубовицкая.
SnicK И КАК ему эта функция прмржет, если юзер сделал абзац не в конце, а посередине?
Хитрый Хомячок:
добавляет еще один слешь( \\\\n, \\\\t)
Ой, правда, што ли? Добавляет? А если подумать? каким-нибудь местом, для этого предназначенным?
Хитрый Хомячок:
Может вернее было бы запретить ввод в данное поле всех нежелательных данных (конец строки, табуляцию
по-твоему, запретить - это единственный способ?
И тебе охота читать тексты без разбиения на абзацы? Себя не жалеешь - так хоть посетителей пожалей, чтобы они глаза не ломали.
Хитрый Хомячок:
символа конца строки (/n)
с чего ты взял, что символ конца строки обозначается /n?
Точную цитату и адрес.
-
Хитрый Хомячок
Запрещать вовсе не обязательно, достаточно заменить на html эквиваленты
-
2 RomikChef
Очень жаль что ценность вашего ответа не представляет важности для потомков. Как это не печально, но факт. Откуда у вас столько сарказма и циничности? Быть может вы обиженны чем то?...
Учитывая флудовый оттенок вашего сообщения, ограничусь ответом лишь на последний вопрос. "с чего ты взял, что символ конца строки обозначается /n?
Точную цитату и адрес."
С прискорбием ОТМЕЧУ что допустил распространенную ошибку, указав иное направление слеша.
И если ваша фантазия допускает правоту иных людей, то пожалуйста вам источники:
1)Котеров Д. В.Самоучитель PHP 4. — СПб.: БХВ-Петербург, 2001. — 576 с.: ил.стр.31 1-й абзац
2) Люк Велинг, Лора ТОмсон "РАзработка WEB-приложений с помощью РНР и MySQL - стр.70 4-й абзац
Крайне вам признателен за оказанное внимание, оссобенно за ценные коментарии и рекомендации
-
Mog.
Да я с привеликим удовольствием оставил бы возможность оставлять удобочитаемые коментарии в своей гостевой книге. Низнаю как мне индифицировать передаваемые данные на наличие нажатого Entera. Обратить их в аналог html перехода на другую строку не составит труда.
:(
-
Хитрый Хомячок:
Низнаю как мне индифицировать передаваемые данные на наличие нажатого Entera. Обратить их в аналог html перехода на другую строку не составит труда.
Как идентификация, так и замена производится одной функцией
preg_replace
-
Очень жаль что ценность вашего ответа не представляет важности для потомков. Как это не печально, но факт.
Судя по всему, я беседую с крупным специалистом.
который берется определять ценность ответов.
И которому просто западло ответить на вопросы.
Куда уж нам, бедным посетителям этого форума с таким светилом тягаться.
Пока его с ложечки кормили - он радовался.
а как заставили хоть каплю подумать головой - тут же обидки начались.
Ню-ню.
Раз ты такой большой специалист - скромные наши возможности врядли тебе помогут
-
Если же учесть, что единственной проблемой пациента (помимо черезчур завышенного самомнения) является шаролупие в тяжёлой форме, то отвечать, опять же - бессмысленно.
-
Тема открыта, до первого сообщения не в тему.
Если что-то непонятно в ответе - надо вежливо попросить разъяснений. А с заявлениями для потомков проследуйте в другую палату - здесь это не лечат.
Перед тем, как писать, автору настоятельно рекомендуется задуматься как над своими высказываниями, не вызывающими ничего, кроме смеха, так и над действиями, которые он производит в своей программе.
Внимательность, отсутствие которой и послужило причиной страшных неразрешимых проблем с переводоом строки, так же рекомендуется повысить.
-
я, как заметил, ромикчеф тут ко всем лезит, не давая никаких нормальных ответов... ты,если не знаешь,не лезь... а то тебе тоже диагноз мона поставить....
-
[moderator]
Liion предупреждение за переход на личности. Последнее.
В следующий раз пиши грамотнее и по теме.
-
:)
зато RomikChef себе не позволял себе переход на личности и пишет строго по теме.
-
Хитрый Хомячок:
зато RomikChef себе не позволял себе переход на личности и пишет строго по теме.
RomikChef:
Внимательность, отсутствие которой и послужило причиной страшных неразрешимых проблем с переводоом строки, так же рекомендуется повысить.
Читай [color="orange"]внимательнее[/color], что тебе пишут. Вместо того, что бы разбиратся, кто есть кто.
-
Виноват. Признаю. Печально лишь в виду своих амбиций не позводившие рассмотреть свою ошибку сразу :(
Жаль что из-за этого закинул свой первый в жизни "проэкт", так и не разобравшись во всех особенностях. Оставив пробел в этом вопросе.