|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Vikentiy Trofimov 2:463/482.12 17 Nov 2000 03:19:40 To : All Subject : Я б не спрашивал, но уже больше недели мучаюсь... --------------------------------------------------------------------------------
Hужна своеобразная рассылка - я ввожу адреса, из них выбираются уникальные и
добавляются в базу. Как дальше сделать рассылку - я знаю. Hе получатся проверить
на уникальность (кажется проблемы с последними символами).
В форме адреса вводятся через enter, в elist они так же сохраняются, но
что-то здесь не так (глючит...)
==========================
#!/usr/local/bin/perl -w
$|=1;
use CGI qw/:standard/;
if ($ENV{'REQUEST_METHOD'} eq "POST")
{read(STDIN, $query, $ENV{'CONTENT_LENGTH'})}
if ($ENV{'REQUEST_METHOD'} eq "GET")
{$query = $ENV{'QUERY_STRING'}}
print "Content-type: text/html\n\n";
$answer="good";
print <<HTML;
<html>
<head><title>Adding e-mail addresses</title>
</head>
<body bgcolor="white">
<form action=\"maillist.pl\" method=post>
<textarea name=newemails colls=50 rows=10>
</textarea>
<br><center>
<input type=submit name=submit value=Submit>
</center>
</form>
HTML
@pairs = split(/&/, $query);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
chomp $FORM{'newemails'};
@newemails = split "\n", $FORM{'newemails'};
$newnum=0;
$oldnum=0;
while ($newemails[$newnum] ne '') {
$oldnum=0;
open (ELIST,elist);
chop;
@oldemails=<ELIST>;
close ELIST;
while ($oldemails[$oldnum] ne '') {
if ($oldemails[$oldnum] eq $newemails[$newnum]) {$answer="bbad"; $oldnum++;}
else {$oldnum++}
}
if ($answer eq "good") { &ok; $newnum++}
else {$newnum++; $answer="good"} }
sub ok {
$oldemails[$oldnum]=$newemails[$newnum];
open (ELIST,">elist");
$oldnum=0;
while ($oldemails[$oldnum] ne '') {
print ELIST $oldemails[$oldnum];
$oldnum++;
}
close ELIST;
$newnum++;
$answer="good";
}
=== ... а здесь он заканчивается ===
WBR, Vikentiy 17 ноября 2000 года
---
* Origin: А как чайник в женском роде? :) (2:463/482.12)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/33213a1496ae.html, оценка из 5, голосов 10
|