2014-10-07 143 views
1

有沒有一種方法,我可以在指定的時間間隔後自動調用一個php腳本。如何自動調用一個PHP腳本每天發送自動電子郵件

我有一個PHP腳本(sayupusingusers.php),它使用mysql來查詢人們已經提交每週報告的數據庫。該腳本自動查詢數據庫,並向尚未發送每週報告的用戶發送電子郵件提醒。

我現在應該做的是給管理員一個選項,設置一個提醒開始和提醒結束日期,在此期間應該自動對我的alertsusers.php腳本進行調用,並停止提醒結束日期。

我從SO/google學到的是我可以設置cron(在LINUX中)來自動調用我的alertsusers.php,但我沒有任何shell訪問權限來執行此操作。

Else我可以編寫另一個php腳本,每隔24小時進行一次基本睡眠,並自動喚醒以調用我的alertsusers.php腳本。

是否還有其他內置方法?

任何想法?

+0

我會聯繫您的虛擬主機,以確定您是否可以設置cron。我認爲需要cron作業是一個很常見的請求,所以很多主機都可以通過某種方式來設置它們,即使沒有shell訪問權限也是如此。 – Kai 2014-10-07 23:35:51

+0

你有什麼主機類型,即使有shell,很多主機通過cpanel提供cron作業 – 2014-10-07 23:37:41

+0

即使我設置了cron訪問權限,它是否可以保存我的index.php(我的網站)中的數據併發出查詢每24小時相同的數據? – PSN 2014-10-07 23:37:55

回答

1

使用您網站的訪問者觸發事件。發送消息,然後檢查是否經過了1天。然後發送另一個。你仍然需要注意不要雙倍/三倍/ ...發送同步。

當時間已過時,使用MySQL(或系統)MUTEX確保只發生一次發送。

+1

如果沒有訪客,該怎麼辦? – PSN 2014-10-07 23:35:27

+1

@PSN幸運。使用系統cronjob。或者觸發其他地方的訪問。 – CodeAngry 2014-10-07 23:38:07

1

是的,你可以!你需要做的是使用cron作業。 Cron作業本質上是告訴服務器定期執行腳本(PHP或其他)。 Cron作業功能非常強大並且可以自定義,因爲您幾乎可以爲cron設置任何間隔。

如果您使用CPanel管理您的站點,CPanel中有一個按鈕可用於查看您設置的所有cron作業。該頁面上還有一個教程。

希望這會有所幫助。

+3

感嘆,你甚至讀過這個問題 – 2014-10-07 23:39:34

+0

@Dagon其實是的。他在問如何設置一個cron工作,我實際上給出瞭如何去做的答案,而不是告訴他應該使用cron。你的答案在哪裏? – 2014-10-07 23:43:31

+0

請原諒我,如果我問一個微不足道的問題。據我所知,cron只是在指定的時間間隔內調用腳本。我的remindusers.php需要來自我網頁的表單中的數據。根據這些數據發佈查詢。 cron可以保存這些數據並定期傳遞給我的腳本。此外,只要管理員需要,我將不得不自動化cron以開始和結束。通常管理員會將這些數據輸入到我的網頁表單中。 – PSN 2014-10-07 23:43:49

-1

我知道您沒有Shell訪問權限,但您是否看過cPanel以查看是否有在該位置設置cron作業的選項?

+0

評論,而不是回答 – 2014-10-07 23:40:02

+0

好吧,我不能「評論」,因爲我沒有足夠的聲譽這樣做 – Atzaman 2014-10-07 23:43:59

+0

夥計們,我沒有殼,沒有cPanel任何。我不需要任何外部應用程序來完成我的工作,因爲我需要在需要下載cpanel時通知IT,而我不想這麼做。我的代碼將被髮送給客戶。你通常不需要客戶擁有cpanel。 – PSN 2014-10-07 23:46:35