2009-11-09 12 views

答えて

8

cronジョブは、定義上、Webブラウザの要求から呼び出されていないため、クッキーにアクセスすることはできません。ウェブブラウザだけが、セッションIDを含むクッキーを格納する。ウェブブラウザなし、クッキーなし、セッションなし。

あなたはが何らかの形でセッションIDを知っていますか場合、あなたはsession_start()を使用する前にsession_id()にIDを供給することによって、手動でセッションを開始することができるはず、と述べました。

+0

それはセッションがまだ存在する場合のみです。数時間または数日後に実行されるcronジョブは、おそらくもう存在しないセッションをロードしようとします。 –

+0

お返事ありがとうございました。私はそれが好きです。 –

0

pseudo cronというプロジェクトがあり、セッションやCookieにアクセスすることができます。しかし、それは私にとって意味をなさないでしょう。

+0

実際にはありません。実際の要求から実行することにより、その正確な瞬間にページを要求する人、いないのcronジョブあなたが実行している人からのCookieからのCookieを「見ます」。 引用@deceze同じ制限が適用されますでしょう。あなたは* * SESSION_IDを事前に知っておく必要があるとのセッションを開始するためにそれを使うだろう。あなたがcronを使用することができない限り、pseudo-cronを良い選択肢にしません。 –

+0

はい、あなたは正しいです。しかし、その質問は、どの特定のセッションにアクセスするための参照をしていないので、それは意味があると思った。しかし、あなたはdecezeからの答えが正確だろう知られたセッションIDのセッションにアクセスしたい与えられました。 –

2

もう1つの答えは、コマンドラインWebクライアントでセッションクッキーファイルを使用できることです。 例:

C=~/tmp/x 
WGET="wget --keep-session-cookies --load-cookies=$C --save-cookies=$C" 

1.

HIDDENVARS=`cat index.html | tr '\r\n\t' ' ' | tr -s ' ' | sed "s|> *<|>~<|g" | tr '~' '\n' | \ 
grep -i "<input .*hidden" | sed "s|.*name=\"\([^\"]*\)\".*value=\"\([^\"]*\)\".*$|\1=\2|g" | tr '\n' '&'` 

3任意の隠された値が手動で非隠されたVARSに

FORMVARSを追加

$WGET -O index.html "http://mail.yahoo.com" 

2.魚ログインページを出します= ".persistent = y &ログイン=ユーザー名& passwd = SE CRET "

4.投稿フォームデータターゲットへ

$ WGET -O login.htmlと--postデータ= "$ {} HIDDENVARS & $ {FORMVARS}"" https://でログイン。 yahoo.com/config/login? "

5.利益;)

0

cronジョブ内で実行するには、時間ベースの、サーバー側の「クッキー」:サーバー側の「クッキー」を読むために

使用ファイル() - テキストファイル。

fopen、fwrite、fcloseを使用して、サーバー側の「Cookie」を書き込みます。

メインコード:あなたの「クッキー」内の複数のDataValueは保存する場合

使用は破

<?php 

$username = 'whatever'; 

$usercookie = 'http://yourdomainname.com/cookiebank/'.$username.'cookie.txt'; 

$oldtime = file($usercookie); 

if(is_array($oldtime)) { 
    $cookievalue = implode(" ",$oldtime); 
} 
else { 
    $cookievalue = $oldtime; 
} 

// $cookievalue can then be used as you wish... 

$newtime = date("M j G:i:s"); 

$newtime = strtotime($newtime)*1000; // current time in msec 

$myfile = fopen($usercookie, "w") or die("Unable to open file!"); 
fwrite($myfile, $newtime); 
fclose($myfile); 


echo 'done'; 

?> 

アプローチストレートヒース・ロビンソンの心から - 非常にエレガントされていないが、それは動作しますcronジョブにクッキーのような動作を適用したい場合

関連する問題