我编写了一个使用身份验证和会话的 PHP Web 应用程序(虽然没有 cookie)。对于浏览器中的用户来说,一切正常。在这一点上,虽然我需要添加将自动执行任务的功能......用户不需要看到任何东西,也不能与这个过程进行交互。所以我编写了我的新 PHP,import.php,它可以在我的浏览器中运行。我设置了一个新的 cron 作业来调用“php import.php”。不工作。开始谷歌搜索,似乎我需要使用 cURL 和可能的 cookie,但我不确定。基本上 import.php 需要进行身份验证,然后访问本地服务器上同一目录中的单独文件 funcs.php 中的函数。所以我将 cURL 添加到 import.php 并从命令行重新运行;我看到以下内容:
[me@myserver]/var/www/html/webapp% php ./import.php
* About to connect() to myserver.internal.corp port 443 (#0)
* Trying 192.168.111.114... * connected
* Connected to myserver.internal.corp (192.168.111.114) port 443 (#0)
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* Remote Certificate has expired.
* SSL certificate verify ok.
* SSL connection using SSL_RSA_WITH_3DES_EDE_CBC_SHA
* Server certificate:
* subject: CN=dept,O=Corp,L=Some City,ST=AK,C=US
* start date: Jan 11 16:48:38 2012 GMT
* expire date: Feb 10 16:48:38 2012 GMT
* common name: myserver
* issuer: CN=dept,O=Corp,L=Some City,ST=AK,C=US
> POST /webapp/import.php HTTP/1.1
Host: myserver.internal.corp
Accept: */*
Content-Length: 356
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------2c5ad35fd319
< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Date: Thu, 27 Dec 2012 22:09:00 GMT
< Server: Apache/2.4.2 (Unix) OpenSSL/0.9.8g PHP/5.4.3
< X-Powered-By: PHP/5.4.3
* Added cookie webapp="tzht62223b95pww7bfyf2gl4h1" for domain myserver.internal.corp, path /, expire 0
< Set-Cookie: webapp=tzht62223b95pww7bfyf2gl4h1; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< Content-Length: 344
< Content-Type: text/html
<
* Connection #0 to host myserver.internal.corp left intact
* Closing connection #0
我不确定通过 cURL 进行身份验证后应该做什么。或者是否有另一种我不使用 cURL 的身份验证方式?目前,Web 应用程序中的所有页面都根据 $_SESSION 和 $_POST 值检查采取(或不采取)行动。如果 cURL 是唯一的方法,我需要 cookie 吗?如果我需要 cookie,一旦我将它发送回服务器,我为什么需要处理它?
基本上 import.php 会检查并读取同一目录中的文件。假设 cron 运行时有文件并解析它们并将数据插入数据库。同样,一切都在浏览器中运行,而不是从命令行导入。
以前从未这样做过(或者很多 PHP),我完全被难住了。
谢谢你的帮助。