Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Я б не спрашивал, но уже больше недели мучаюсь...   Vikentiy Trofimov   17 Nov 2000 03:19:40 
 Я б не спpашивал, но yже больше недели мyчаюсь...   Konstantin Petrenko   20 Nov 2000 21:22:31 
Архивное /ru.cgi.perl/33213a1496ae.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional