2012-03-07 161 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