2016-01-21 128 views
0

我想執行一個PHP腳本,以發送電子郵件。我已在的cPanel的cronjob到文件,但通路時,發送的電子郵件我收到Cronjob PHP腳本輸出不執行需要腳本

X供電-者:PHP/43年5月4日 內容類型:text/html的

在在的cronjob的cPanel我已經把下面的代碼:

php /home/themesby/public_html/reminder/trimite-email.php 

,我要執行的代碼如下:

<?php 
include('db-connect.php'); 
$number_of_days_before = 1; 
$email = "[email protected]"; 
$reminder_details = ""; 
$todays_date = date("Ymd"); 
$year = substr($todays_date, 0, 4); 
$month = substr($todays_date, 4, 2); 
$date = substr($todays_date, 6, 2); 
$trigger_date = date("Ymd", mktime (0,0,0,$month,$date-$number_of_days_before,$year)); 
$result = mysql_query("SELECT * FROM evenimente WHERE data_eveniment <=$trigger_date ORDER BY data_eveniment ASC"); 
$nr = mysql_num_rows($result); 
while($row = mysql_fetch_array($result)) 
{ 
$year = substr($row["data_eveniment"], 0, 4); 
$month = substr($row["data_eveniment"], 4, 2); 
$date = substr($row["data_eveniment"], 6, 2); 
$data_eveniment = date("M j, Y", mktime (0,0,0,$month,$date,$year)); 
$reminder_details .= "Eveniment: ".$row["nume_eveniment"]."\n"; 
$reminder_details .= "Data: ".$data_eveniment."\n"; 
$reminder_details .= $row["descriere_eveniment"]."\n\n"; 
} 
mysql_free_result($result); 
if(!empty($nr)) 
{ 
$mailheader = "From: Planificator <$email>\nX-Mailer: Reamintire\nContent-Type: text/plain"; 
mail("$email","Reamintire","$reminder_details","$mailheader"); 
// Delete the sent reminders 
mysql_query("DELETE FROM evenimente WHERE data_eveniment <= $trigger_date"); 
} 
?> 

什麼可能是問題的根源? Thx提前。

+1

注意:'mysql_ *'功能已被棄用,他們已經從PHP 7刪除,你的代碼將停止工作,當你升級到那個版本。您不應使用它們編寫新代碼,而應使用['mysqli_ *'或PDO](http://php.net/manual/en/mysqlinfo.api.choosing.php)。 –

+0

你的腳本處於危險之中,你應​​該避免使用mysql_ – ameenulla0007

+0

當你直接調用它而沒有crond的時候腳本是否工作? –

回答

1

嘗試包括絕對路徑到你的PHP程序是這樣的:

/usr/bin/php /home/themesby/public_html/reminder/trimite-email.php 
+0

你的意思是在cronjob命令? – AdrianAdr

+0

是的,同樣的問題...... :( – AdrianAdr

+0

也許你的腳本需要通過發佈chnod + x /home/themesby/public_html/reminder/trimite-email.php來獲得可執行權限/ – Eugene