Я делаю обслуживание в сети для Perl (у меня нет знаний по Perl).Детали в форме по электронной почте для кого-то, чтобы обращаться.Тестер вернулся с этой ошибкой в электронном письме:
В большие блоки текста вставлены ложные символы.Срабатывает примерно в 1961 символе в каждом текстовом поле или текстовой области.Восклицательный знак и пробел вставляются примерно в 1961 году, затем через восемь символов пробел, а затем повторяются примерно каждые 2048 символов.
Итак, я попытался повторить эту ошибку, и это то, что она возвращала1970):
a!defghij
Я понятия не имею, что могло бы вызвать это.Единственный способ, которым я могу думать, чтобы «исправить», это сделать это:
if (length($someInput) gt 1500){
$someInput=substr($someInput, 0, 1500);
}
Кто-нибудь знает, что вызывает это в Perl и как я могу это исправить?
РЕДАКТИРОВАТЬ Это функция, через которую я запускаю каждое поле.Затем он просто помещается в html электронной почты.
#sanitises and returns the given input
sub sanitiseInput {
my ($input) = @_;
$input = trim(param($input));
$input = HTML::Entities::decode($input);
$input =~ s/<script[^>]*?>.*?<\/script>//gi; # strip out javascript
$input =~ s/<style[^>]*?>.*?<\/style>//gi; # strip out styles
$input =~ s/<![\s\S]*?--[ \t\n\r]*>//gi; # strip out multi-line comments
$input =~ s/&/&/gi; # & to &
$input =~ s/</</gi; # < to <
$input =~ s/>/>/gi; # > to >
$input =~ s/"/"/gi; # " to "
$input =~ s/'/'/gi; # ' to '
$input =~ s/\r\n/<br>/gi; # return and newline to <br>
$input =~ s/\r/<br>/gi; # return to <br>
$input =~ s/\n/<br>/gi; # newline to <br>
return $input; #return the new value
}
EDIT Это функция, которая отправляет html
sub mailer {
my ($from_eddress, $to_eddress, $subject, $mail_content, $fail_eddress)=@_;
open(MAIL, "|/usr/sbin/sendmail -f $from_eddress $to_eddress") or print "Cannot fork to mail - $!\n";
print MAIL "From: $from_eddress\n";
print MAIL "To: $to_eddress \n";
print MAIL "Subject: $subject\n";
if ($fail_eddress != '') { print MAIL "fail-to: $fail_eddress\n"; }
print MAIL "Content-type: text/html\n\n";
print MAIL "\n";
print MAIL "<html><head><style>body, p, th, td {font-size: 0.75em; font-family: Arial, Helvetica, sans-serif;} a {font-size: 1em; font-family: Arial, Helvetica, sans-serif;} .large{font-size: 1.2em;} .small{font-size: .8em;} </style></head><body>";
print MAIL "$mail_content";
print MAIL "</body></html>";
close (MAIL);
}
электронной почты.