brucegm Posted March 11, 2011 Share Posted March 11, 2011 Hi there I have a PHP file that works perfectly when I run it in my browser (compiles a report and saves it to my server), however when run from Cron gives a totally different output. Below is the code, and below that is the output I get when run from Cron. <?php include("db_conn.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>Customer Appreciation Project</title> </head> <body> <?php $date = date("Y-m-d"); $time = date("h:i:s",time()); $file = $date.".html"; $fp=@fopen("active_members/".$file, 'w'); $content = "<html><head><title>Active Members Report</title></head><body>"; $content = $content . "<h1>Active Members</h1>"; $content = $content . "<p><font size=1>Report run on ". $date . " at ". $time."</font></p>"; $fetch_members = mysql_query("SELECT * FROM membership_periods WHERE (membership_periods.Start_Date <= Now() AND membership_periods.End_Date >= Now()) ORDER BY Member_Number"); if (mysql_num_rows($fetch_members) == "0") { $content = $content . "<p>No results were found.</p>"; } else { $content = $content . "<table border=0 cellpadding=2 width=100%>"; $content = $content . "<tr><td><b>Member Number</b></td><td><b>Start Date</b></td><td><b>End Date</b></td><td><b>Affiliation</b></td><td><b>Voucher</b></td></tr>"; while($row = mysql_fetch_array($fetch_members)) { $content = $content . "<tr><td>". $row['Member_Number'] ."</td><td>". $row['Start_Date']."</td><td>". $row['End_Date'] ."</td>"; $Affiliation_ID = $row['Affiliation_Group_ID']; if (Affiliation_ID > 0) { $fetch_affiliation= mysql_query("SELECT * FROM affiliation_groups WHERE ID = '$Affiliation_ID'"); $Affiliation_Group_Name = mysql_result($fetch_affiliation, 0, "Affiliation_Group_Name"); $content = $content . "<td>". $Affiliation_Group_Name ."</td>"; } else { $content = $content . "<td> </td>"; } $Member_Number = $row['Member_Number']; $fetch_member_id = mysql_query("SELECT ID FROM members WHERE Member_Number = '$Member_Number'"); $Member_ID = mysql_result($fetch_member_id, 0, "ID"); $fetch_voucher = mysql_query("SELECT Voucher_ID FROM reward_assignments WHERE Member_ID = '$Member_ID' AND Reward_Valid_To >= Now()"); if (mysql_num_rows($fetch_voucher) > 0) { $Voucher_ID = mysql_result($fetch_voucher, 0, "Voucher_ID"); $fetch_voucher_no = mysql_query("SELECT Voucher_Number FROM reward_vouchers WHERE ID = '$Voucher_ID'"); $Voucher_Number = mysql_result($fetch_voucher_no, 0, "Voucher_Number"); } $content = $content . "<td>". $Voucher_Number ."</td></tr>"; $Affiliation_Group_Name = ""; $Voucher_Number = ""; } $content = $content . "</table>"; } $content = $content . "</body></html>"; fwrite($fp, $content); fclose($fp); ?> </body> </html> And this is the Output I get mailed to me when Cron job runs: PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0 <!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>Customer Appreciation Project</title> </head> <body> PHP Notice: Use of undefined constant Affiliation_ID - assumed 'Affiliation_ID' in /var/www/reports/active_members.php on line 40 PHP Notice: Undefined variable: Voucher_Number in /var/www/reports/active_members.php on line 63 PHP Notice: Use of undefined constant Affiliation_ID - assumed 'Affiliation_ID' in /var/www/reports/active_members.php on line 40 PHP Notice: Use of undefined constant Affiliation_ID - assumed 'Affiliation_ID' in /var/www/reports/active_members.php on line 40 PHP Notice: Use of undefined constant Affiliation_ID - assumed 'Affiliation_ID' in /var/www/reports/active_members.php on line 40 PHP Notice: Use of undefined constant Affiliation_ID - assumed 'Affiliation_ID' in /var/www/reports/active_members.php on line 40 PHP Notice: Use of undefined constant Affiliation_ID - assumed 'Affiliation_ID' in /var/www/reports/active_members.php on line 40 PHP Notice: Use of undefined constant Affiliation_ID - assumed 'Affiliation_ID' in /var/www/reports/active_members.php on line 40 PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/reports/active_members.php on line 75 PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/reports/active_members.php on line 76 </body> </html> Any assistance would be much appreciated. Quote Link to comment https://forums.phpfreaks.com/topic/230312-php-failing-to-save-report-with-cron/ Share on other sites More sharing options...
HuggieBear Posted March 11, 2011 Share Posted March 11, 2011 Why when this is running as a cron job are you outputting all that HTML? Also, some of those errors are relating to the file handle, so when you're debugging, it might be handy to NOT suppress the errors. Change this $fp=@fopen("active_members/".$file, 'w'); To this $fp=fopen("active_members/".$file, 'w'); Quote Link to comment https://forums.phpfreaks.com/topic/230312-php-failing-to-save-report-with-cron/#findComment-1186097 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.