【问题标题】:Cron job error in phpphp中的cron作业错误
【发布时间】:2015-10-29 08:23:27
【问题描述】:
<!DOCTYPE html>
<html>
<head>
<title>MY Database</title>
</head>
<body>
<?php
        $dbcon=mysql_connect("localhost","santu_dbuser","santulan@123") or die("mysql connection error".mysql_error());
        mysql_select_db("santu_db",$dbcon) or die("mysql database error".mysql_error());
        $qry="SELECT DISTINCT CaseId,eemp_id, MAX(FeedbackDate) from session_feedback_master WHERE added_by like 'USER' GROUP BY CaseId";
        $result=mysql_query($qry) or die("mysql query error".mysql_error());

ini_set("SMTP","localhost");

ini_set("smtp_port","25");

ini_set('sendmail_from', 'no.reply@santulan.co.in');

        $num=mysql_num_rows($result);

        if($num>0)
        {       
?>
        <table border="1px">    
        <tr>
            <td>Case Id</td>
               <td>Feedback Date</td>
            <td>Emp Id</td>
            <td>Email</td>  
        </tr>
    <?php
        while($row=mysql_fetch_assoc($result))
        {
        echo "<tr>";
       echo "<td>".$row["CaseId"]."</td>";
         echo "<td>".$row["MAX(FeedbackDate)"]."</td>";
             echo "<td>".$row["eemp_id"]."</td>";         
             echo "</tr>";
        <!--- for calculation--->

        $mydate=new DateTime($row["MAX(FeedbackDate)"]);
        $eemp_id=$row["eemp_id"];               
        echo $eemp_id;  
        $now=new DateTime('today');
        echo "Diffrence in days";
        echo $datediff =  $now->diff($mydate)->d;
        //echo "<br>";      
        if($datediff>10)
        {
        echo "we are checking"; 
        $eemp_id=$row["eemp_id"];       
            $qry="SELECT email FROM  end_employee_master where id=".$eemp_id ;
            $result1=mysql_query($qry) or die("mysql query error".mysql_error());
            $num=mysql_num_rows($result1);
            echo $num;
            if($result1)
            {

                while($row=mysql_fetch_array($result1))
                {
                    $eemp_id=$row["eemp_id"];

                echo "employee id is". $eemp_id;    
                echo "<tr>";
                 echo "<td>".$row[0]."</td>";
                  //echo "<td>".$row["id"]."</td>";
                 //$id=$row["id"];

                $to = $row[0];
                echo   " we found mail id".$to;
                $subject = "This is subject";
                $message = "This is simple text message from santulan regarding you have not "
                ."replied for the E-counseling chat for last 28 days ";
                $from = "no.reply@santulan.co.in";
                $header = 'From: '.$from."\r\n".

'Reply-To: '.$email_from."\r\n" .

'X-Mailer: PHP/' . phpversion();

                $retval = mail($to,$subject,$message,$header);
                if( $retval == true )  
                {
                echo "result found";
                echo "Message sent successfully from live.... $mail";
                }
                else
                {
                echo "Message could not be sent...";
                }
                     echo "</tr>";
                echo "no of rows: $num";
              echo "Mail is: $mail";

                }           
            }
        else
        {
        echo " no record found";    
        }               
        }
        else
        {           
        echo "Date difference not greater ";
        }
        }
        }
    ?>      
        </table>`enter code here`   
</body>

当我将此文件放在 cron 并设置我的邮件 ID 用于警报时,我收到以下 maul 错误:

/home/santu/public_html/cron_job.php:第 1 行:意外标记附近的语法错误 newline' /home/santu/public_html/cron_job.php: line 1:'

当我手动运行该文件时,它运行绝对正确。看起来大部分是一些 html 错误,但我无法得到它。

【问题讨论】:

    标签: php cron


    【解决方案1】:

    这在一定程度上取决于您的 cron 作业是如何正常设置的..

    您不能在顶部运行 cron 作业

    <!DOCTYPE html>
    <html>
    <head>
    <title>MY Database</title>
    </head>
    <body>
    

    你需要

    #! /usr/bin/php
    

    (根据需要替换php的路径)

    否则 unix 不承认它是一个可行的脚本,也不知道用什么来运行它——它不在乎它最后说的是 .php

    您还需要记住,当您从命令行运行 cron 时,它可能没有获取您拥有的所有环境变量。

    所以即使你以 /usr/bin/php myfile.php 运行它

    它可能不一样,因为命令可能不在你以前的路径中。

    另外 - 它输出 html,因为您在其中编码了 html。如果您不打算从您的网站上运行此文件,请不要为此编写代码。您可以让它输出更好的纯文本,通常在任何输出中通过电子邮件发送给您。

    【讨论】:

    • 我已经给出了我的路径,先生/home/santu/public_html/cron_job.php,这是给出cron作业文件路径的正确方法
    • 怎么样?我在这篇文章中提到了两件事。您是在 PC 上编写代码并上传吗?
    • 是的,先生,我在电脑中编写代码并上传,我为运行文件提供的路径是/home/santu/public_html/cron_job.php
    • 正确,因此您需要按照上述说明更改文件 - 并检查文件中是否仍有 PC 换行符。
    • 你好,现在它给了我这个错误 /home/santu/public_html/cron_job.php: line 1: ?php: No such file or directory /home/santu/public_html/cron_job.php: line 2:意外令牌"localhost","santu_dbuser","santulan@123"' /home/santu/public_html/cron_job.php: line 2: $dbcon=mysql_connect("localhost","santu_dbuser","santulan@123") 或 die("mysql 连接错误".mysql_error());' 附近有语法错误
    猜你喜欢
    • 2017-09-05
    • 2016-06-04
    • 2017-10-11
    • 2016-12-06
    • 2016-01-29
    • 2013-01-25
    • 2014-04-06
    • 1970-01-01
    • 2012-08-28
    相关资源
    最近更新 更多