認証とセッションを使用する PHP Web アプリケーションを作成しました (Cookie は使用しません)。ブラウザのユーザーにとって、すべてが正常に機能します。この時点で、タスクを自動的に実行する機能を追加する必要があります... ユーザーは何も見る必要がなく、このプロセスと対話することもできません。そこで、ブラウザで動作する新しい PHP import.php を作成しました。「php import.php」を呼び出す新しい cron ジョブをセットアップしました。うまくいきません。グーグルを開始しましたが、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が実行され、それらを解析し、DBにデータを挿入するときにファイルがあるとします。繰り返しになりますが、コマンド ラインからのインポートだけでなく、すべてがブラウザーで機能します。
これまでにこれを行ったことがない (またはその点で多くの PHP を使用したことがない) ので、私は完全に困惑しています。
ご協力いただきありがとうございます。