Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cron作业更改PHP电子邮件脚本输出_Php_Mysql_Email_Cron - Fatal编程技术网

Cron作业更改PHP电子邮件脚本输出

Cron作业更改PHP电子邮件脚本输出,php,mysql,email,cron,Php,Mysql,Email,Cron,我昨天设置的cron作业有一个奇怪的问题。我正在运行以下CronJob脚本: 0 7***php-q/wocs/email.php 这是指向我放在下面的电子邮件脚本。目标是让它运行调用MySQL数据库的脚本,并向用户发送一封电子邮件,告知他们必须签署多少张票。当我在phpmyadmin中运行查询时,我得到了正确的结果,当我在页面上回显结果时,它给出了正确的结果。但在今天早上7点,Cron作业通过电子邮件发送给数据库中的每个用户(即使是没有任何未完成的票证的用户——因此他们根本不应该收到任何东西,

我昨天设置的cron作业有一个奇怪的问题。我正在运行以下CronJob脚本:

0 7***php-q/wocs/email.php

这是指向我放在下面的电子邮件脚本。目标是让它运行调用MySQL数据库的脚本,并向用户发送一封电子邮件,告知他们必须签署多少张票。当我在phpmyadmin中运行查询时,我得到了正确的结果,当我在页面上回显结果时,它给出了正确的结果。但在今天早上7点,Cron作业通过电子邮件发送给数据库中的每个用户(即使是没有任何未完成的票证的用户——因此他们根本不应该收到任何东西,而且在我自己运行脚本时测试查询时,他们也不会出现)。他们每个人都发了十几次电子邮件,发送的号码不准确,我无法复制自己

这是代码,当我在浏览器中运行它时,它可以完美地工作,唯一一次出现错误是在Cron作业运行时

$query="
SELECT *, COUNT(*)
FROM job, user
WHERE job.jobs_osuper=user.users_id
AND job.jobs_approverid2 = 0
GROUP BY user.users_id
";              

$result=mysql_query($query);

mysql_close();

$num=mysql_num_rows($result);
                    $conditional1=mysql_result($result,$i,"users_id");
                    $conditional2=mysql_result($result,$i,"jobs_osuper");

$i = 0;
while($i<$num && $conditional1 == $conditional2)
{
                            $name=mysql_result($result,$i,"user_fullname");
                            $email=mysql_result($result,$i,"user_email");
                            $count=mysql_result($result,$i,"COUNT(*)");

$mailfrom = "from@email.com";
$mailbcc = "bcc@email.com";
$message = "<b>$name,</b><p>You have $count ticket(s) waiting on your approval.  <a href='http://url.com'>Click here to review the tickets assigned to you.</a></p>";

mail($email, "Tickets for Approval", $message, "From: $mailfrom\r\nCC: $mailbcc\r\nContent-type: text/html\r\n");
$i++;
}
$query=”
选择*,计数(*)
来自作业、用户
其中job.jobs\u oseper=user.users\u id
和job.jobs\u approverid2=0
按用户分组。用户\u id
";              
$result=mysql\u query($query);
mysql_close();
$num=mysql\u num\u行($result);
$conditional1=mysql\u result($result,$i,“users\u id”);
$conditional2=mysql_result($result,$i,“jobs_osuper”);
$i=0;

虽然($i您的脚本可能是由其他用户通过cron作业运行的。我不确定这是否会影响您的结果,但这在过去曾让我感到悲伤

您的cron命令应该如下所示:

sudo su www-data -c "php -q /wocs/email.php"
确保www数据是正确的用户-您可以通过在浏览器中运行
echo get_current_user();
进行检查