Как выполнить действие PHP на основе даты / времени?

1

Я хочу, чтобы мой сервер отправлял мне e-mails с напоминаниями о дне рождения на основе дня рождения в базе данных на сервере у моего поставщика веб-хостинга. Я знаю, как отправлять e-mails с PHP, но только как действие после нажатия кнопки на стороне клиента. Это также единственный способ выполнить действие, которое я смог найти.

Как я могу отправить мне свой адрес e-mail на определенную date/time без участия пользователя?

редактировать
Я не думаю, что мой вопрос является дубликатом. Предполагаемая дублируемая ссылка относится к вопросу о cron, и ответ о синтаксисе, но он не объясняет, как работает cron, или как я могу использовать его для своей проблемы.

  • 4
    Вы можете установить работу cron для отправки электронной почты
  • 2
    Возможный дубликат работы php cron каждые 10 минут
Показать ещё 4 комментария
Теги:
email

3 ответа

0

Разработать комментарий, предоставленный Apb;

  1. создайте свой php файл с содержимым (часть скрипта - кнопка)
  2. Используйте cron для linux os или если вы работаете в Windows, вы выполняете скрипт php

Еще один вариант - setcronjob.com, на который ответил Santosh Achari, ввести описание ссылки здесь вопрос

  • 0
    Куда мне это положить? Все, что у меня есть, это каталог для моих веб-страниц на моем веб-хосте.
  • 0
    проверьте справку вашего веб-хоста, должны ли они предоставить опции cron
0

Как другие сказанные cronjobs - хороший способ добиться этого.

Например (очень рудиментарный) script.php

include '../connect.php';   
$birthday_list =[];
$today = date("m.d.y"); 


try {           
    $sql = "SELECT 'Birthday', 'Name', 'Surname',  FROM 'Friends' WHERE Friends.Birthday = '$today'";               
    foreach ($conn->query($sql) as $row) {          
        $temp = [$row['Birthday'],$row['Name'],$row['Surname']];
        $birthday_list[] =  $temp;                  
                    }    
            }
    catch(PDOException $e)
        {
        echo "Connection failed: " . $e->getMessage();
    }

foreach ($birthday_list as $el){
    $name = $el[1];
    $surname = $el[2];
    $message = 'Todays is'.$name.' '.$surname.' birthday'; 
    mail('[email protected]', 'My Subject', $message);
}

Затем вы можете запустить этот скрипт как cronjob, некоторые хостинги (например, godaddy) позволяют вам устанавливать crons из cpanel, в противном случае вам нужно установить кран из вашей серверной оболочки.

0

Вы можете написать скрипт php для выполнения в командной строке. Чтобы запустить php-скрипт из командной строки, вы просто используете команду php:

php myscript.php

В этом примере, если myscript.php имеет всю логику отправки ваших писем, тогда вы просто настраиваете задание cron для автоматического myscript.php файла каждый день или каждый час (как бы часто вы его не выполняли). Тогда все, что вам нужно сделать, это написать логику в вашем скрипте PHP, чтобы проверить, не отправлено ли это "время" для отправки одного из этих писем.

Ответ на этот пост имеет большое объяснение настройки заданий cron для скриптов php.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню