1

我有一个应用程序系统,用户可以在其中保存他们的信息但不能提交。显然,如果他们没有在截止日期之前提交所有内容,则需要提醒他们。我可以做到这一点的基本方法是,如果它已提交,那么我的数据库中的一个字段可以标记为 1。但是,如果它是 0,我希望发送一封电子邮件来提醒他们。

更复杂的是,从截止日期前 4 周开始,我希望那周收到一封电子邮件,截止日期前 3 周收到两封电子邮件,依此类推,直到他们在截止日期前 1 周收到四封电子邮件。(显然分散在一周内)。

我觉得每周只做一次对我来说可能已经够复杂了,因为我还是新手!

研究它看起来好像我需要一个 Cronjob,但如果有办法避免这种情况(触发器),那就更好了!

4

1 回答 1

0

Cron 作业起初令人生畏,相关过程可能看起来很困难,但可以分解成碎片。此外,脚本会随着您学习和思考要包含的内容而增长。不知道你的数据库结构,也许大纲会让你开始。

决定脚本的运行频率(每天、每 6 小时等)
许多主机使用 cPanel 进行管理。它有一个与 Cron Jobs 一起使用的图标,以及简单或专家设置模式的选择。它也可能有示例设置。您将输入日、月、年、小时和分钟的数字或 *(星号)以包括所有可能的数字。
另一个对初学者来说很难的项目是用于告诉服务器如何处理以及处理什么文件的命令。它需要大量阅读和反复试验。
一个例子:php -q /home/your_account_name/public_html/admin/yourfile_cron.php(你的服务器上的开头可能不同)

在脚本中:(
使用完整的路径详细信息以避免以后出现问题,如上面以:/home开头。 ..)

  1. 设置一些常量(调试文件、数据库密码文件等)
    使用 fopen 和 fwrite 记录您不会在屏幕上看到的内容
  2. 首先查询数据库以查找用户的姓名和电子邮件以进行发送
  3. 处理结果查询及其数据
  4. 建立电子邮件
  5. 发送电子邮件
    根据服务器,选择邮件程序。在某些情况下,mail() 不会发送到本地主机之外。(PHP Mailer 是一个选项)
  6. 使用文件运行和发送的结果更新数据库

您可以通过在浏览器中访问脚本并包含一些“回声”来运行脚本进行测试。cron 作业通常没有(或不需要)屏幕输出。在测试期间,我使用自己的电子邮件作为静态收件人。

希望这能让你开始。这是一项艰巨的任务,需要几天的时间来实施。但是,当它最终按照您的要求执行时,您会发现它是有益的!

于 2012-04-13T14:25:26.790 回答