PHP таймер для отправки электронной почты один раз, когда таймер заканчивается

ребята, я знаю, что это, вероятно, получил ответ, но я просто не могу понять, что мне нужно, чтобы сделать это.

У меня есть PHP-скрипт на моем сервере, который должен отправлять электронную почту, когда таймер заканчивается.

Информация, отображаемая в таймере, не может измениться, поскольку у него есть несколько скриптов, которые читают из него.

Проблема в том, что я не могу ограничить электронную почту одним … он посылает сотни.

Я попытался добавить переменную, которая отключает функцию if, чтобы предотвратить повторный запуск электронной почты, но она просто не будет работать.

Действительно нуждается в некоторой помощи.

<?php
$curr = time();
$date = strtotime("Dec 08, 2014 7:43PM");
$diff = $date - $curr;
$diff_dd = floor($diff / 86400);
$diff %= 86400;
$diff_hh = floor($diff / 3600);
$diff %= 3600;
$diff_mm = floor($diff / 60);
$diff %= 60;
$diff_ss = $diff;
$all = diff_dd + $diff_hh + $diff_mm + $diff_ss;
echo sprintf("%02d%02d%02d%02d",$diff_dd,$diff_hh,$diff_mm, $diff_ss);

if($diff == 0)

{
$Email --;
$to = "[email protected]";
$subject = "text";
$txt = "text";
$headers = "From: [email protected]" . "\r\n" .
"CC: [email protected]";
mail($to,$subject,$txt,$headers);
}?>

0

Решение

Похоже, вы установили diff к разнице во времени между какой-то датой и временем, затем измените это значение, вычисляя дни, часы, минуты и т. д., затем проверьте, diff это ноль. Когда вы делаете тест diff это количество секунд, а не исходная разница. Похоже, что электронное письмо будет отправлено каждую минуту.

0

Другие решения

вы можете просто изменить $ diff после его отправки, поэтому в условии if просто добавьте $diff= -1; или просто сбросьте время, или в условии if просто измените выражение. или даже установить его на 1 вместо 0.

вам просто нужно остановить цикл … я думаю, что если число отрицательное, оно все равно вернет 0 (произошло несколько раз, но не уверен, где), поэтому убедитесь, что вы остановили его и не полагаетесь на его отрицательное значение.

0

По вопросам рекламы [email protected]