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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Alan Long                            2:5030/1082.72 16 Jan 2002  05:03:29
 To : Alan Long
 Subject : многократный submit данных
 -------------------------------------------------------------------------------- 
 
 * Originally from Alan Long (2:5030/1082.72) to All.
 
 [...]
 
 С помощью ценных советов здесь присутствующих, я решил данную задачу, вот мое
 решение:
 - --
 sub dupe_check {
    my   $str = shift;
    my   $rc = 0;
    local   *IN;
 
    open( IN, "+< $FileName" ) and do {
       if( flock( IN, 2 ) ) {
          local $_;
          my ( $id, $expire, %table );
          my $now = time();
 
          while( <IN> ) {
             chop;
             my( $id, $expire ) = split ' ';
             $table{$id} = $expire
                if( $expire > $now );
          }
          if( defined $table{$str} ) {
             $rc = $table{$str};
          } else {
             $table{$str} = $now + $TimeOut;
             seek( IN, 0, 0 );
             while( ($id, $expire) = each %table ) {
                print IN join(' ', $id, $expire ), "\n";
             }
             truncate( IN, tell( IN ) );
          }
       } else {
          $rc = $TimeOut;
 #        Hи как не решу, насколько это правильно.
       }
       close( IN );
    }
    return $rc;
 }
 - --
 
 Использует две внешние переменные:
    $FileName - файл доступный на запись, где хранится вся информация
    $TimeOut - на какой срок игнорировать дублирующие сообщения.
 
 использование:
    my $sender  = join(' ', $q->remote_addr(), $ENV{HTTP_X_FORWARDED_FOR} || ''
 );
    my $to = $q->param( 'to' );
    my $msg = $q->param( 'msg' );
    my $rc = dupe_check( md5_hex( join('', $to, $msg, $sender ) ) );
    if( $rc ) {
       ...
       print "<p>Сообщение сейчас отправляется, подождите $rc секунд...</p>";
       ...
    } else {
       send_message( $to, $msg, $sender );
    } 
 
 Всем большое спасибо. критика функции dupe_check - приветствуется. Да, написал
 по памяти, так что возможны синтаксические ошибки, но принцип работы именно
 такой.
 
 -- 
 With best,
      Ъ-·    Ъ
      Е-ЧLaі\і <alan@x-rays.eu.org>
 
 --- timEd/386 1.10+
  * Origin: X - Rays Station (2:5030/1082.72)
 
 

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

 Тема:    Автор:    Дата:  
 многократный submit данных   Alan Long   05 Jan 2002 01:36:46 
 Re: многократный submit данных   Denis Savostjanov   05 Jan 2002 15:00:49 
 многократный submit данных   Alan Long   07 Jan 2002 08:32:59 
 многократный submit данных   Alexander Bolotnov   08 Jan 2002 01:55:30 
 многократный submit данных   Ruslan Bondarev   08 Jan 2002 22:29:43 
 многократный submit данных   Alexander Bolotnov   09 Jan 2002 01:41:55 
 многократный submit данных   Ruslan Bondarev   13 Jan 2002 00:08:13 
 многократный submit данных   Alexander Bolotnov   13 Jan 2002 03:23:38 
 Re: многократный submit данных   Artem Chuprina   14 Jan 2002 11:40:59 
 многократный submit данных   kan   14 Jan 2002 13:55:16 
 многократный submit данных   Alan Long   09 Jan 2002 00:07:26 
 Re: многократный submit данных   andy Tatarinov   05 Jan 2002 15:17:06 
 многократный submit данных   Alan Long   07 Jan 2002 08:35:51 
 Re: многократный submit данных   andy Tatarinov   08 Jan 2002 10:40:47 
 многократный submit данных   Alan Long   09 Jan 2002 00:11:36 
 Re: многократный submit данных   andy Tatarinov   09 Jan 2002 08:34:06 
 многократный submit данных   Ivan Frolcov   05 Jan 2002 19:03:16 
 многократный submit данных   Dima Marakasov   06 Jan 2002 00:38:04 
 Re: многократный submit данных   Artem Chuprina   08 Jan 2002 13:26:33 
 многократный submit данных   Dima Marakasov   09 Jan 2002 02:36:07 
 Re: многократный submit данных   Artem Chuprina   09 Jan 2002 12:39:27 
 Re: многократный submit данных   Ilia Vinokurov   12 Jan 2002 23:23:11 
 многократный submit данных   Alexander Bolotnov   13 Jan 2002 01:34:12 
 Re: многократный submit данных   Artem Chuprina   14 Jan 2002 11:38:56 
 многократный submit данных   Vladimir Kolosov   15 Jan 2002 18:34:15 
 Re: многократный submit данных   Artem Chuprina   16 Jan 2002 11:33:51 
 многократный submit данных   Alan Long   07 Jan 2002 08:19:17 
 многократный submit данных   Dima Marakasov   05 Jan 2002 14:21:57 
 Re: многократный submit данных   Nikolay Pichtin   06 Jan 2002 09:49:35 
 Re: многократный submit данных   Roman Drobov   07 Jan 2002 12:45:51 
 многократный submit данных   Dima Marakasov   06 Jan 2002 20:34:15 
 Re: многократный submit данных   Nikolay Pichtin   08 Jan 2002 09:49:43 
 многократный submit данных   Dima Marakasov   09 Jan 2002 02:27:29 
 Re: многократный submit данных   vitus@ice.ru   09 Jan 2002 12:49:45 
 многократный submit данных   Dima Marakasov   09 Jan 2002 16:16:30 
 Re: многократный submit данных   Artem Chuprina   09 Jan 2002 13:08:18 
 многократный submit данных   Dima Marakasov   09 Jan 2002 16:18:14 
 многократный submit данных   Alan Long   07 Jan 2002 08:38:35 
 многократный submit данных   Alan Long   07 Jan 2002 08:37:29 
 многократный submit данных   Dima Marakasov   09 Jan 2002 03:09:42 
 Re: многократный submit данных   Nikolay Pichtin   13 Jan 2002 14:50:58 
 Hа: многократный submit данных   Alexander V. Gaiduk   14 Jan 2002 14:23:30 
 Hа: многократный submit данных   Ruslan Bondarev   14 Jan 2002 20:38:20 
 многократный submit данных   Alexey A Kudacov   05 Jan 2002 20:54:02 
 Re: многократный submit данных   Pavel Ammosov   07 Jan 2002 13:34:37 
 многократный submit данных   Alan Long   08 Jan 2002 23:45:14 
 Re: многократный submit данных   Ilia Vinokurov   12 Jan 2002 23:35:24 
 многократный submit данных   Anton Kudris   08 Jan 2002 03:38:39 
 многократный submit данных   Alan Long   08 Jan 2002 23:50:52 
 Hа: многократный submit данных   Alexander V. Gaiduk   09 Jan 2002 13:35:06 
 многократный submit данных   Dima Marakasov   09 Jan 2002 03:21:16 
 многократный submit данных   Alexander Bolotnov   05 Jan 2002 23:43:50 
 многократный submit данных   Alan Long   09 Jan 2002 00:01:22 
 Re: многократный submit данных   Ilia Vinokurov   12 Jan 2002 23:19:07 
 Re: многократный submit данных   Pasha   08 Jan 2002 14:07:43 
 Re: многократный submit данных   Ivan Frolcov   08 Jan 2002 15:19:22 
 Re: многократный submit данных   Artem Chuprina   08 Jan 2002 15:29:35 
 многократный submit данных   Dima Marakasov   09 Jan 2002 03:24:34 
 многократный submit данных   kan   10 Jan 2002 01:04:52 
 многократный submit данных   Alan Long   16 Jan 2002 05:03:29 
Архивное /ru.cgi.perl/4581c44d4000.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional