2011-07-10 176 views
0

ウェブサイトを訪問し、前記ウェブサイトにログインし、前記クッキーファイルを保存し、その後、通常はログインを必要とするページにアクセスするために前記クッキーファイルを読むことができる。カールを使用して変数としてクッキーを保存する

問題私は、PHP変数を使用してクッキーファイルを保存して取得したいが、それがうまく動作しないようだ。

$username = "myusername"; 
function getUrl($url, $method='', $vars='') { 
$ch = curl_init(); 
if ($method == 'post') { 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); 
} 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies/$username.txt"); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies/$username.txt"); 
$buffer = curl_exec($ch); 
curl_close($ch); 
return $buffer; 
} 

私は構文が間違っていると仮定し、そのカールは場所として変数を扱うことはできませんか?

+0

「クッキー」は存在しますか? Webサーバーユーザーが書き込み可能ですか? –

+0

はいとはい。なぜなら、.txtファイルが存在しなくても、それはそれを作成するからです。ハードコードされたテキストの代わりに変数を使用することを除いて、本質的に私が目指すものです – cwal

答えて

1

問題は$username変数の範囲です。それは関数の外にあるため、関数内では使用できません。関数のパラメータとしてユーザー名を追加するか、関数内でアクセスできるようにglobalキーワードを使用する必要があります。

詳細については、http://ca2.php.net/manual/en/language.variables.scope.phpを参照してください。

+0

+1、私は奇妙なインデントのためにその1つを逃しました。 –

+0

ありがとうございます!グローバル$ユーザ名;機能の中で私の問題を解決! – cwal

関連する問題