Forum Webscript.Ru

Программирование => PHP => Тема начата: alexander70 от 03 Марта 2004, 10:36:33

Название: Проблема с реализацией фичи
Отправлено: 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 раз?

С уважением, Александр
Название: Проблема с реализацией фичи
Отправлено: AliMamed от 03 Марта 2004, 10:38:05
использовать запуск по расписанию средствами ОС
для *nix - cron
для NT - планировщик заданий (назначенные задания)
Название: Проблема с реализацией фичи
Отправлено: alexander70 от 03 Марта 2004, 10:45:44
Если бы я ещё знал, как это сделать, было бы совсем отлично. Хостинг на Linux. С файлами сайта для этого ничего нельзя сделать?
Название: Проблема с реализацией фичи
Отправлено: AliMamed от 03 Марта 2004, 11:14:20
можно еще фиксировать в файлике какомнить, что сегодня письма отправлялись

[off]за кросспостинг можно бан схлопотать[/off]
Название: Проблема с реализацией фичи
Отправлено: Макс от 03 Марта 2004, 12:44:14
alexander70
напиши хостеру, узнай есть ли у тебя доступ к cron и как к нему получить доступ.
На нормальных хостингах с этим проблем обычно не бывает
Название: Проблема с реализацией фичи
Отправлено: Меняздесьдавнонет от 03 Марта 2004, 12:56:26
Цитировать
можно еще фиксировать в файлике какомнить, что сегодня письма отправлялись

А можно и в самой таблице, писать время отправки.
Название: Проблема с реализацией фичи
Отправлено: alexander70 от 03 Марта 2004, 15:10:25
Спасибо, попробую с cron разобраться. Если будут ещё мысли по этому поводу, пишите.
Название: Проблема с реализацией фичи
Отправлено: Меняздесьдавнонет от 03 Марта 2004, 16:18:24
куда тебе еще-то?
этих мало?
Название: Проблема с реализацией фичи
Отправлено: alexander70 от 03 Марта 2004, 20:31:24
К сожалению, крон для меня недоступен, надо что-то другое придумать. Если кто знает, как это можно сделать иначе, типа добавить признак в MySQL, что письмо уже отправлено, буду благодарен.
Название: Проблема с реализацией фичи
Отправлено: it4all от 03 Марта 2004, 22:16:39
Ну раз все молчат -(казнить нельзя,помиловать)
Цитировать
alexander70:
типа добавить признак в MySQL, что письмо уже отправлено
ты практически сам себе и ответил.
В качестве признака добавь столбец к таблице и после отправки заноси туда че-ть,хотябы время,как Ромик советовал.А перед отправкой проверяй есть в столбце значение или нет.
Название: Проблема с реализацией фичи
Отправлено: Меняздесьдавнонет от 03 Марта 2004, 22:57:05
не есть или нет, конечно, а сравнивать время отметки, текущее, и время дня рождения в этом году
Название: Проблема с реализацией фичи
Отправлено: alexander70 от 03 Марта 2004, 23:08:14
Понятно, но кто-нибудь шарит в MySQL, чтобы написать конкретный код, как это сделать? Я не очень шарю, написал код по аналогии. Функция для дня рождения уже была готовая, показывала именинников, а я уже добавил sendmail
Название: Проблема с реализацией фичи
Отправлено: Diesel от 04 Марта 2004, 10:19:51
alexander70 скажи, ты хочешь научиться программировать на PHP? Чесно скажи! Если да, то напиши сам. Тебе дали уже всю нужную для этого информацию. Если не "шаришь" то прошарся. Если учиться не хочешь, то вообще непонятно зачем ты сюда пришел.
Название: Проблема с реализацией фичи
Отправлено: alexander70 от 04 Марта 2004, 11:00:41
Всё нормально, разберусь, спасибо за помощь.