Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите пожалуйста с Гостевой Книгой, Написал Гостевую на Perl 
:(
    Опции темы
korob2001
  Дата 19.3.2003, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Написал гостевую, только вот ума не приложу как сделать что-бы на странице было только 10 сообщений, при вводе 11-го, гостевая должна генерить вторую страничку и сдвигать на неё самое первое сообщение, и т.д. При этом на первой страничке должна появиться ссылка на вторую и наоборот.

Подскажите принцип (подтолкните), мне нужно понять а не скопировать код.

Гостевая тута: http://www.denstelen.hop.ru/cgi-bin/nguest...st/guest_dsl.pl

Заранее благодарен,
korob2001


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
HalkaR
Дата 19.3.2003, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Ты базу тестовую или SQL используешь?
Если SQL то просто отсортировать по значению времени в нужном порядке и выводить первые 10. А если тествую, то записывать в файл не дописывать, а в начало засовывать, тогда рабоать удобнее. А если дописывать, то ивертировать массив, или чо ты там используешь.

З.Е. Если уж просишь помочь, то исходник показывай. И еще называть функцию F#ckContext() как минимум не очень красиво.
PM MAIL   Вверх
Foxx
  Дата 19.3.2003, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.3.2003
Где: Новосибирск

Репутация: нет
Всего: нет



Я сделал аналогичное на PHP, если разберешься в коде- могу скинуть.
PM MAIL ICQ   Вверх
korob2001
Дата 20.3.2003, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



To HalkaR
Я Perl изучаю только 3-4 месяца, потому до баз данных ещё не дошёл. В этой гостевой все данные хранятся в DBM-файле. Могу прислать исходник. Мне главное сейчас понять принцип.

Цитата

З.Е. Если уж просишь помочь, то исходник показывай. И еще называть функцию F#ckContext() как минимум не очень красиво.

smile.gif

Это сообщение отредактировал(а) korob2001 - 20.3.2003, 02:00


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
korob2001
Дата 20.3.2003, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



To Foxx

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


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
HalkaR
Дата 20.3.2003, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



to korob2001
Кинь мне на мыло - я посмотрю.

Это сообщение отредактировал(а) HalkaR - 20.3.2003, 02:24
PM MAIL   Вверх
korob2001
Дата 20.3.2003, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



To HalkaR
Только что кинул. Лови

Это сообщение отредактировал(а) korob2001 - 20.3.2003, 02:35


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
HalkaR
Дата 20.3.2003, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Посмотрел. Во-первых скрипт должен иметь возможность получать параметр - номер страницы. Для первой страницы не обязательно, но для остальных надо.
А как вывод можно сделать так. Вот эту часть
Код
GET_FLOCK();
    dbmopen (%SHOW, $DBM_DATA, 0600) or die "Не могу открыть файл базы данных: $!";
    foreach (reverse sort {$a <=> $b} keys %SHOW) {
Надо заменить на
Код
$i = 0;
if($num){for ($i=1; $i++; ($i<=10*$num)&&(($key, $value) = each (%SHOW))){}}
for ($j=$i+1; $j++; ($j<=$i+11)&&(($key, $value) = each (%SHOW))){}
Где $num это номер страницы. В принципе должно работать.
PM MAIL   Вверх
HalkaR
Дата 20.3.2003, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Кстати, у меня твой скрипт ни на первом, ни на втором Апаче так и не запустился.
PM MAIL   Вверх
korob2001
Дата 20.3.2003, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Помоему я начал хавать каким образом передаются параметры Perl скрипту. Дело в том что я раньше никогда не передавал их таким образом, только через формы.

Цитата

Кстати, у меня твой скрипт ни на первом, ни на втором Апаче так и не запустился.


Странно, у меня правда не Апач, а Xitami. Хотя на сервере где лежит пример установлен Апач confused.gif


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
HalkaR
Дата 21.3.2003, 03:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Так если проблема в этом, то если параметры передаются не из формы, то можно делать так
Код
Адерес/script.pl?paramet=value
Теперь получить это можно так
Код
use CGI;#стандартный модуль
$q = CGI -> new;
$num = $q -> param('parametr');
Теперь у тея в переменной $num - значение value.
PM MAIL   Вверх
korob2001
Дата 21.3.2003, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Всё понятно, не понятна одна строка:
$q = CGI -> new;
Что она означает?

Я вчера пробовал таким способом:
Код

#!/usr/bin/perl
use CGI qw( :all );
use strict;

my $num = param('id');
my $url = "http://sleep/cgi-bin/param/test2.pl?";
my %hash = (
                      1 => "id=1",
                      2 => "id=2",
                      3 => "id=3",
);

my %hash_param = (
                                  1 => "<center><img src='1.gif'></center>",
                                  2 => "<center><img src='2.gif'></center>",
                                  3 => "<center><img src='3.gif'></center>",
);

foreach (sort {$a <=> $b} keys %hash) {
   print "  <a href=$url$hash{$_}>$_</a>";
}

print "$hash_param{$num}";

Тоже получилось hehe.gif


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
HalkaR
Дата 21.3.2003, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Код
$q = CGI -> new;
Просто CGI можно использовать и с обьектно-ориентированным интерфейсом и без. Я предпочитаю с ООП, так как сам модуль ОО, то теоретически это должно быть поудобнее и побыстрее.
А этой строкой я создаю обьект CGI.
Что такое ООП я обьяснять не буду: если знаешь, то не надо, а не знаешь - я не обьясню. smile.gif
PM MAIL   Вверх
korob2001
Дата 21.3.2003, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Цитата

Что такое ООП я обьяснять не буду: если знаешь, то не надо, а не знаешь - я не обьясню.


smile.gif

Модуль ОО - сам модуль является Объектно Ореентированным.
ООП - объектно ореентированное программирование, ещё говорят - Объектно Ореентированный Подход. rolleyes.gif

Правда в Perl я ещё не проходил ООП, а вот в JavaScript я знаю что это такое.

Большое тебе спасибо HalkaR

Это сообщение отредактировал(а) korob2001 - 21.3.2003, 14:17


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0814 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.