Forum Webscript.Ru
Программирование => PHP => Тема начата: alexander70 от 03 Марта 2004, 10:36:33
-
Привет! Хочу сделать на сайте 1 фичу – отправка поздравительных писем ко дню рождения пользователей из базы MySQL. Я составил для этого код:
$tmp=mysql_query("SELECT id, fname, gender, email, password, birthday FROM ".C_MYSQL_MEMBERS." WHERE MONTH(birthday)=MONTH(NOW()) AND DAYOFMONTH(birthday)=DAYOFMONTH(NOW()) AND status >= \'7\' order by birthday ASC");
$i=mysql_fetch_array($tmp);
$tm=array(C_URL);
$subject=template($w[401],$tm);
$tm=array($id,$i[\'password\'],C_URL,fname);
$message=template($w[402],$tm);
sendmail(C_FROMM,$i[\'email\'],$subject,$message,\'text\');
?>
и поместил его в index.php . Письма отправляются, но не 1 раз, а всякий раз, при открытии файла index.php . Можно сделать php файл, чтобы работал без его открытия в браузере? И как сделать, чтобы письмо отправлялось только 1 раз?
С уважением, Александр
-
использовать запуск по расписанию средствами ОС
для *nix - cron
для NT - планировщик заданий (назначенные задания)
-
Если бы я ещё знал, как это сделать, было бы совсем отлично. Хостинг на Linux. С файлами сайта для этого ничего нельзя сделать?
-
можно еще фиксировать в файлике какомнить, что сегодня письма отправлялись
[off]за кросспостинг можно бан схлопотать[/off]
-
alexander70
напиши хостеру, узнай есть ли у тебя доступ к cron и как к нему получить доступ.
На нормальных хостингах с этим проблем обычно не бывает
-
можно еще фиксировать в файлике какомнить, что сегодня письма отправлялись
А можно и в самой таблице, писать время отправки.
-
Спасибо, попробую с cron разобраться. Если будут ещё мысли по этому поводу, пишите.
-
куда тебе еще-то?
этих мало?
-
К сожалению, крон для меня недоступен, надо что-то другое придумать. Если кто знает, как это можно сделать иначе, типа добавить признак в MySQL, что письмо уже отправлено, буду благодарен.
-
Ну раз все молчат -(казнить нельзя,помиловать)
alexander70:
типа добавить признак в MySQL, что письмо уже отправлено
ты практически сам себе и ответил.
В качестве признака добавь столбец к таблице и после отправки заноси туда че-ть,хотябы время,как Ромик советовал.А перед отправкой проверяй есть в столбце значение или нет.
-
не есть или нет, конечно, а сравнивать время отметки, текущее, и время дня рождения в этом году
-
Понятно, но кто-нибудь шарит в MySQL, чтобы написать конкретный код, как это сделать? Я не очень шарю, написал код по аналогии. Функция для дня рождения уже была готовая, показывала именинников, а я уже добавил sendmail
-
alexander70 скажи, ты хочешь научиться программировать на PHP? Чесно скажи! Если да, то напиши сам. Тебе дали уже всю нужную для этого информацию. Если не "шаришь" то прошарся. Если учиться не хочешь, то вообще непонятно зачем ты сюда пришел.
-
Всё нормально, разберусь, спасибо за помощь.