2012-03-07 160 views
0

使用cPanel我想設置一個cronjob。 我有一個php頁面進行數據導入。 但是爲了到達那個導入頁面,我必須通過一個登錄頁面來處理髮布數據。cronjob運行php web應用程序

可以這樣做嗎?

+6

這是可以做到。 – 2012-03-07 14:07:46

+1

怎麼辦? – user1254065 2012-03-07 14:57:01

回答

2

您可以創建一個通過GET訪問的PHP腳本,並執行兩個POST請求本身。

您可以使用PHP CURL在登錄頁面和導入頁面上模擬POST請求。

步驟

  1. 發送與捲曲登錄頁面POST請求。 您指定CURL保留您的Cookie(Cookie jar,確切語法爲read the manual)。

  2. 將會話cookie保存在cookie jar(文件)中後,使用從第一次POST發出的驗證將另一個帖子發送到導入頁面

您可以找到有關捲曲的帖子在這裏的更多信息:http://www.electrictoolbox.com/php-curl-form-post/

+0

「通過GET訪問的PHP腳本」我不明白。你可以解釋嗎? – user1254065 2012-03-07 16:19:47

+0

如何在第二步中讀取cookie? – user1254065 2012-03-07 16:23:56

1

這樣做有兩個簡單的方法:

1.使用捲曲

在你的cron面板,輸入以下命令:

curl --silent --compressed curl http://example.com/script.php > /dev/null 2>&1 

/dev/null 2> & 1在crontab任務運行時禁用郵件警報。但是,如果您正在訪問的腳本需要登錄驗證,則此選項不起作用。所有的服務器正在ping這個網址,它沒有填寫任何表格。因此,如果您使用登錄表單,則可以使用步驟2.或者複製腳本並使其在沒有登錄驗證的情況下運行。

2.訪問PHP腳本內部

我喜歡這種方法,因爲它避免了不必要的TCP棧建立和拆除。不過,您需要知道您的PHP bin目錄的位置。你需要的命令是:

/usr/local/bin/php -f /home/(username)/public_html/(scriptname).php 

有些服務器你可以使用:

php -f /home/(username)/public_html/(scriptname).php