parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Почтовый рассыльщик

coel 24.12.2009 07:25 / 24.12.2009 07:30

В базе для примера 10 писем. Скрипт должен отсылать 5 писем, потом включать META REFRESH на 61сек и после обновления страницы отсылать ещё 5 писем. Но проблемка в том, что после рефреша тег с рефрешем остаётся, а вместо выполнения скрипта стоит клавиша НАЧАТЬ ОТПРАВКУ, как с самого начала. Как исправить, чтобы работало?
@header[]
<head>
^connect[$connect-string]{
   $tMsgBase[^table::sql{SELECT id,
                                email,
                                subj,
                                msg
                         FROM   mspool
                         WHERE  sent=0
                         LIMIT  5
   }]
   $iMsgCount[^int:sql{SELECT COUNT(*)
                       FROM   mspool
   }]
}
$bSentWait(^if(def $form:start && $iSentCount < $iMsgCount){1}{0})
^if($bSentWait){
   <meta http-equiv="Refresh" content="61" />
}
<title>Рассылка писем</title>
</head>

@content[]
<h2>Рассылка писем</h2>
<form action="$request:uri" method="post">
^if($bSentWait){
   <input type="button" value="ЖДИТЕ" disabled="disabled" />
}{
   <input type="submit" name="start" value="НАЧАТЬ ОТПРАВКУ" />
}
</form>

^if($bSentWait){
 ^connect[$connect-string]{
   ^tMsgBase.menu{
      ^mail:send[
         $.from[noreply@dubophone.ru]
         $.to[$tMsgBase.email]
         $.subject[$tMsgBase.subj]
         $.text[$tMsgBase.msg
         Пожалуйста не отвечайте на это письмо, оно создано роботом!]
      ]
      ^void:sql{UPDATE mspool
                SET    sent=1
                WHERE  id=$tMsgBase.id
      }
      $iSentCount[^int:sql{SELECT COUNT(*)
                           FROM   mspool
                           WHERE  sent=1
      }]
      <p>Отправлено $iSentCount писем из $iMsgCount</p>
   }[<br />]
   <p>Время отправки: $date_now.hour:$date_now.minute:$date_now.second</p>
   <p>Ждите 61 секунд до отправки следующей партии писем.</p>
 }
}