如何正确设置我的cron作业

时间:2015-03-26 08:38:55

标签: php cron

我正在尝试设置一个每周一次发送一封电子邮件的cron作业, 根据我对设置cron作业的了解,一个cron作业应该执行一个脚本。

所以这就是我所做的。

在我的cron.php页面上:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<script type="text/javascript"> 

   window.onload=function(){ 
    window.setTimeout(function() { document.postniid.submit(); }, 0000);
};

</script>
   <form name="postniid" id="postniid" method="post" action="cron_post.php" >

      <input name="email" type="hidden" id="inputInsured Name"  value="wolexx007@gmail.com"  />

   </form>
</body>
</html>

我已经设置了一个默认电子邮件发布到cron_post.php的表单,我也将这个表单设置为onload,因为我预计cron会执行我的cron.php页面。

我的cron_post.php页面:

<?php
$reply = $_POST['email'];



    $replysubject = "Auto-Reply: support | kblinsurance.com";
    $replyfrom = "From: noreply@kblinsurance.com\r\n";
     $replymessage .= "Testing Cron Job.\r\n\r\n";




    mail($reply,$replysubject, $replymessage, $replyfrom);  
    ?>

发送电子邮件。

它在我从浏览器测试时有效,但在我设置执行我的cron命令时不执行。

30  14  *   *   1-5 php /home5/whitech3/public_html/cron/cron.php

为什么这样?

1 个答案:

答案 0 :(得分:0)

您正在混淆客户端和服务器端代码。请谷歌寻找差异。

您编写的javascript只有在通过浏览器加载页面时才会执行。你所有的cron工作现在正在做,正在渲染一个带有表单和一些javascript代码的页面,但实际上并没有执行javascript(这是浏览器的工作)。

请注意,您不必依赖POST来执行脚本。在您的cron.php页面中,您只需使用cron_post.php代码(并将$_POST[]替换为实际的电子邮件)。