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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Есть 3 вопроса, Помогите пожалуйста! 
:(
    Опции темы
Rezzonans
Дата 12.2.2004, 13:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Люди, мне скоро курсовой проект сдавать, если кто знает, помогите пожалуйста.
В качестве курсового проекта у меня сайт. Сайт я сделал, информацию нашёл,
дизайн оформил, и обложившись книжками сел писать гостевую книгу. Сделал, но
есть 2 проблемы которые у меня ника не получается решить:
1. Как сделать так, что HTML теги просто выводились на печать, а не превращали весь
дизайн в кашу?
2. Как сделать, чтобы гостевая книга воспринимала красные строки?
В принципе есть ещё и третья проблема: как ограничить количество сообщений на
странице. То есть к примеру первые 20 сообщений, затем открывается новая страница,
и появляется ссылка на первую. Но я так подозреваю в этой гостевой книге эту
проблему не так-то просто решить.

#################################Исходный код#####################################
#!C:/INTERNET/Perl/Bin/Perl
#guestbook.pl

print "Content-type:text/html\n\n";


$guestbook_file = "../www/guestbook.htm";


$guestbook_url = "http://localhost/guestbook.htm";



@month = ("January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December");


if($ENV{'REQUEST_METHOD'} eq "GET"){
$my_data = $ENV{'QUERY_STRING'};
}
else {
$data_length = $ENV{'CONTENT_LENGTH'};
$bytes_read = read(STDIN, $my_data, $data_length);
}

@name_value_array = split(/&/, $my_data);

foreach $name_value_pair (@name_value_array) {

($name, $value) = split(/=/, $name_value_pair);

$name =~ tr/+/ /;
$value =~ tr/+/ /;

$name =~ s/%(..)/pack("C",hex($1))/eg;
$value =~ s/%(..)/pack("C",hex($1))/eg;

$FormData{$name} = $value;
}

($Seconds, $Minutes, $Hours, $DayInMonth, $Month, $ShortYear, $DayOfWeek,
$DayOfYear, $IsDST) = localtime(time);

$Year = $ShortYear + 1900;

$EntryDate = "$month[$Month] $DayInMonth, $Year";

open(GUESTBOOK, "$guestbook_file") || die "Can't open GUESTBOOK: $guestbook_file\n";
@guestbook =<GUESTBOOK>;
close(GUESTBOOK);

open(GUESTBOOK, ">$guestbook_file") || die "Can't open GUESTBOOK: $guestbook_file\n";
foreach $line (@guestbook) {
if($line =~ /<!--Block:-->/i) {

print GUESTBOOK "<STYLE type='text/css'>.talgin{background-color:#737994;border-color: CCCCFF; font-family: Comic Sans MS; SCROLLBAR-BASE-COLOR: #666666; SCROLLBAR-ARROW-COLOR: #9999CC; topmargin: 0}</style><!--Block:-->\n";

print GUESTBOOK "<DL><table class = talgin width = 100% bgcolor = #9999CC border = 1 celpadding = 1 celspasing = 1><tr><td>\n";

if($FormData{'email'}) {

print GUESTBOOK "<DD> <A class = umenu HREF=\"mailto:$FormData{'email'}\">
$FormData{'name'}</A> - $FormData{'city'} <br> Web page: <a class = umenu HREF = \"$FormData{'web_url'}\">$FormData{'web_url'}</a>\n";
}
else {
print GUESTBOOK "From: $FormData{'name'}<BR>\n";
}


print GUESTBOOK "<ul><p>\n";
$FormData{'comments'} =~ s/\n/<br>/g;
print GUESTBOOK "$FormData{'comments'}\n";
print GUESTBOOK "</ul>\n";

print GUESTBOOK "<p><font size=2>\n";
print GUESTBOOK "signed on $EntryDate\n";
print GUESTBOOK "</font>\n";

print GUESTBOOK "</tr></td></table></DL>\n";
print GUESTBOOK "<HR>\n";
}
else {

print GUESTBOOK "$line";
}
}
close(GUESTBOOK);

print <<"EOF"
<body bgcolor = "#666666" class = bl>

<STYLE type="text/css">
.svett{background-color:#737994;border-color: #CCCCFF;font-family: Comic Sans MS, Verdana, Arial, Tahoma ; SCROLLBAR-BASE-COLOR: #737994; SCROLLBAR-ARROW-COLOR: #9999CC; CURSOR: crosshair; topmargin: 0}
.still{font-family: Comic Sans MS;}
.bl {
CURSOR: crosshair; SCROLLBAR-BASE-COLOR: #666666; SCROLLBAR-ARROW-COLOR: #9999CC

}
.umenu {
FONT: "Comic Sans MS" , "Arial"; COLOR: 000099; TEXT-DECORATION: none; CURSOR: crosshair
}
.umenu:hover {
FONT: "Comic Sans MS" , "Arial"; COLOR: 000099; TEXT-DECORATION: none; CURSOR: crosshair
}
.wap{background-color:#737994;border-color: #CCCCFF;font-family: Comic Sans MS, Verdana, Arial, Tahoma; topmargin: 0; CURSOR: crosshair
}

</STYLE>

<table width = "100%" border = 1 class = svett align = center>
<tr>
<td>
<H1 align = center>Спасибо\!</H1>
Ваше сообщение добавлено в гостевую книгу. Если Ваш браузер в течении 3 секунд не вернётся на исходную страницу, воспользуйтесь этой <A class = umenu HREF="$guestbook_url">ссылкой</A>.


<script language = "JavaScript">
<!-- hide
setTimeout("parent.location.href = '$guestbook_url'", 3000);
//-->
</script><p>
<br>Copyright \&copy\; <A class = umenu HREF=mailto:elf68\@yandex.ru>Elf Web - StudiO</A> 2003-2004.</tr></td></body>
EOF
################################################################################
guestbook.htm
###############################################################################
<TITLE>Welcome to My Guestbook</TITLE>
<BODY class = bl bgcolor = #666666 >

<!--Block:-->

<H2 ALIGN=CENTER class = still>Оставить запись в гостевой книге</H2>
<hr>
<FORM METHOD="POST" ACTION="/cgi-bin/guestbook.pl">
<table cellpadding = 0 border = 0>
<tr>
<td>
<PRE>
<INPUT class = svett type=text size=40 maxlength=256 name="name" value = "Гость">
<INPUT class = svett type=text size=40 maxlength=256 name="email" value = "E-mail">
<INPUT class = svett type=text size=40 maxlength=256 name="city" value = "Город">
<INPUT class = svett type=text size=40 maxlength=256 name="web_url" value = "http://">
</tr></td></table>

<table align = center>
<tr><td><br>

<TEXTAREA rows=9 cols=65 name="comments" class = svett></TEXTAREA>
<br>
<INPUT type="submit" value="Отправить!" class = wap> <INPUT type="reset" value="Очистить" class = wap>
</tr></td></table>
</PRE>
</FORM>

<STYLE type="text/css">
.svett{background-color:#737994;border-color: #CCCCFF;font-family: Comic Sans MS, Verdana, Arial, Tahoma ; SCROLLBAR-BASE-COLOR: #737994; SCROLLBAR-ARROW-COLOR: #9999CC; CURSOR: crosshair; topmargin: 0}
.still{font-family: Comic Sans MS;}
.bl {
CURSOR: crosshair; SCROLLBAR-BASE-COLOR: #666666; SCROLLBAR-ARROW-COLOR: #9999CC
}
.umenu {
FONT: "Comic Sans MS" , "Arial"; COLOR: 000099; TEXT-DECORATION: none; CURSOR: crosshair
}
.umenu:hover {
FONT: "Comic Sans MS" , "Arial"; COLOR: 000099; TEXT-DECORATION: none; CURSOR: crosshair
}
.wap{background-color:#737994;border-color: #CCCCFF;font-family: Comic Sans MS, Verdana, Arial, Tahoma; topmargin: 0; CURSOR: crosshair
}


</STYLE>


</BODY>
</HTML>


  Вверх
ElectricalStorm
Дата 12.2.2004, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

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



во первых не мучайтесь
use CGI;

во вторых читайте книжку дальше там наверняка есть ответы на все ваши вопросы
если что-то конкретное то задвайте


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
MuToGeN
Дата 12.2.2004, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

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



Модератор: в третьих, если есть 3 вопроса - пожалуйста, потрудитесь создать 3 топика.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
korob2001
Дата 14.2.2004, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Мой тебе совет, используй:

ключ -w
use strict;
use Fcntl qw( :flock );
use CGI;

за счёт этого ты избавишся от множества проблем в будущем.

Что касается разбивки на страницы читай тута:
http://forum.vingrad.ru/index.php?act=ST&f...&f=5&t=7473&hl=

Что касается красной строки, думаю этот вопрос нужно задать на форуме по HTML/CSS, но лично я бы использовал &nbsp;
Вот пример:
Код

#!/usr/bin/perl -w
my $st = "Привет!\nЯ рад вас видеть у себя на странице.\n  Это красная строка,\nа это, нет.";
$st =~ s/\n\s+/'<br>' . '&nbsp;' x 10/ge;
$st =~ s/\n/<br>/g;
print $st;


Цитата

1. Как сделать так, что HTML теги просто выводились на печать, а не превращали весь
дизайн в кашу?

Этот вопрос не понял, если не трудно, перефразируй.

Это сообщение отредактировал(а) korob2001 - 14.2.2004, 07:25


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


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 23.8.2022

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




Модератор: Сообщение скрыто.

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


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

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


 




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


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

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