2011-07-10 50 views
0

我有一個捲曲功能,訪問網站,登錄到所述網站,存儲cookie文件,然後可以稍後讀取cookie文件訪問通常需要登錄的頁面。使用捲曲和存儲cookie作爲變量

我面臨的問題是我想保存和檢索cookie文件使用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

'cookies /'存在嗎?它可以由Web服務器用戶寫入嗎? –

+0

是的,是的。我知道,因爲如果我命名它什麼(即不是一個變量),即使.txt文件不存在,它會創建它。這基本上是我的目標是除了使用變量而不是硬編碼文本 – cwal

回答

1

問題是$username變量的範圍。因爲它在函數之外,所以在函數內部不可用。您應該添加用戶名作爲函數的參數,或者使用關鍵字global,以便在函數內可訪問。

有關更多信息,請參閱http://ca2.php.net/manual/en/language.variables.scope.php

+0

+ 1,由於奇怪的縮進,我錯過了那個。 –

+0

謝謝!全球$用戶名;函數裏面解決了我的問題! – cwal