форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / The Matrix Has You / Perl. Скрипт комментариев. Требуется доработка. |
| Автор | Сообщение |
| webskan Участник 3 |
# Дата: 28 Май 2006 12:56 Протестил скрипт CommentsFSS. Работает хорошо и подходит для моих целей. Но две проблеммы. 1) Нет защиты от флуда 2) Не контролирует длину слова. Т.е. можно набить без пробелов 500 символов, и дизайн сайта ломается. К сожалению я не знаком с перлом, буду очень благодаре за помощь. Фрагмент кода:
$text2=$text;
$text2 =~ s/\s//g;
if (length($text2) == 0)
{
$errm="Вы не заполнили поле Комментарий";
&msg;
exit;
}
if (length($name) > 10){
$errm="В поле Имя не должно быть больше 10 символов.";
&msg;
exit;
}
elsif (length($text) >= 500){
$errm="В поле Комментарий не должно быть больше 500 символов.";
&msg;
exit;
}
Если не правильно вывел фрагмент, могу привести полный листинг. |
| webskan Участник 3 |
# Дата: 29 Май 2006 12:21 ° Поправил: webskan листинг.
#use locale;
$setfile="set.dat";
&loadset;
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $bufer, $ENV{'CONTENT_LENGTH'});
}
else
{
$bufer=$ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $bufer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%0D%0A/\n/g;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
print "Content-type: text/html\n\n";
$id = $FORM{id};
if ($id =~ /\W/)
{
#Если в параметре найдены негодный символы, то завершение работы.
#Читайте справку.
exit;
}
$id =~ s/<([^>]|\n)*>//g;
$action=$FORM{action};
if (length($id) == 0)
{
exit;
}
if ($action eq "add") {
&add;
}
else {
&view;
}
sub view
{
#Проверка существования указанного файла
if (-e "$data$id.txt") {
#Файл существует, все в порядке.
}
else {
#Файла нет, надо создать.
open FILE,">$data$id.txt";
print FILE "";
close FILE;
chmod(0755,"$data$id.txt");
}
#Открывается файл с html, и %comm% в нем заменяется на комментарии, а %filename |
| webskan Участник 3 |
# Дата: 29 Май 2006 12:25 ° Поправил: webskan Продолжение
$name2=$name;
$name2 =~ s/\s//g;
if (length($name2) == 0)
{
$errm="Вы не заполнили поле Имя";
&msg;
exit;
}
$text2=$text;
$text2 =~ s/\s//g;
if (length($text2) == 0)
{
$errm="Вы не заполнили поле Комментарий";
&msg;
exit;
}
if (length($name) > 10){
$errm="В поле Имя не должно быть больше 10 символов.";
&msg;
exit;
}
elsif (length($text) >= 500){
$errm="В поле Комментарий не должно быть больше 500 символов.";
&msg;
exit;
}
if ($disable_html == 1)
{
if ($text =~ /<([^>]|\n)*>/)
{
$text =~ s/<([^>]|\n)*>//g;
$errm="В вашем комментарии были найдены html коды. Они удалены, а остальное доб |
| acsid Alfa Guru 2388 |
# Дата: 29 Май 2006 14:56 оч занимательная вещ |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:34326, gzipped size:11254 |